【发布时间】:2018-02-17 10:22:39
【问题描述】:
我有一个流式源,它可以生成许多没有分隔符(或中间只有空格)的 JSON 对象。如果我将它传递给 json4s parse 函数,它只会为第一个对象生成 AST。
作为一种解决方法,我可以手动解析它,然后通过添加适当的括号和逗号将其转换为 JSON 数组,或者将其分块并在每个块上调用 parse。
不过,这是rather common format,所以我确定问题已经解决了。我只是在 json4s 文档中找不到它的 API。
【问题讨论】:
-
jawn 似乎通过
ValueStream支持这一点。 jhttps://index.scala-lang.org/non/jawn/jawn-parser - 如果你想用它进行适当的流处理:github.com/circe/circe-fs2 - 用 circe 解码。 -
@Reactormonk,我并不是很热衷于添加另一个 json 库依赖项,但是 jawn 可以产生 json4s AST,所以如果 json4s 本身不支持这个,我不会排除它。跨度>
-
我发现 circe 编解码器比 json4s 的手动编解码器更易于维护。
-
@Reactormonk,不需要带有 json4s 和案例类的手动编解码器,至少在我的用例中是这样。老实说,我不知道它实际上是如何工作的。