【发布时间】:2026-01-21 09:00:01
【问题描述】:
是否可以动态地将来自 Akka HTTP 的 外部 长度未知的 ByteString 流反序列化到域对象中?
上下文
我调用一个 infinitely 长的HTTP 端点,它输出一个不断增长的JSON Array:
[
{ "prop": true, "prop2": false, "prop3": 97, "prop4": "sample" },
{ "prop": true, "prop2": false, "prop3": 97, "prop4": "sample" },
{ "prop": true, "prop2": false, "prop3": 97, "prop4": "sample" },
{ "prop": true, "prop2": false, "prop3": 97, "prop4": "sample" },
{ "prop": true, "prop2": false, "prop3": 97, "prop4": "sample" },
...
] <- Never sees the daylight
【问题讨论】:
-
为了澄清,您是尝试接收此 JSON 流还是广播此流?如果广播,你的内部表示是什么(例如迭代器,scala 流,......)?此外,通信必须是数组还是可以是单个域对象的流?
-
@RamonJRomeroyVigil 此流将完全是外部的。
-
在您的特定情况下,您可以等待关闭
}并调用您选择的反序列化器以获取中间文本。这需要一些操作,并且可能在 ByteString 上进行缓冲,但它们非常基本。 -
你真的需要 JSON 数组吗?对 JSON 文档使用不同的分隔符(例如换行符)将使这项任务更容易。见doc.akka.io/docs/akka-stream-and-http-experimental/2.0-M2/scala/…
-
@PavelKudinov 你有这方面的例子吗?
标签: json akka akka-stream akka-http