小编典典

在Scala中使用哪个JSON库?

json

我需要构建一个JSON字符串,如下所示:

[
  { 'id': 1, 'name': 'John'},
  { 'id': 2, 'name': 'Dani'}
]

val jArray = JsArray();
jArray += (("id", "1"), ("name", "John"))
jArray += (("id", "2"), ("name", "Dani"))
println(jArray.dump)

我需要能够向添加行jArray,类似jArray += ...

最接近的图书馆/解决方案是什么?


阅读 710

收藏
2020-07-27

共1个答案

小编典典

不幸的是,编写JSON库是Scala社区编写待办事项列表应用程序的版本。

有很多选择。我没有特别列出它们,并带有注释:

  1. parsing.json.JSON - 警告 这个库仅达斯卡拉版本2.9.x(新版本中删除)
  2. spray-json-从Spray项目中提取
  3. Jerkson ±- 警告 一个不错的库(建立在Java Jackson之上),但现在已经放弃了。如果要使用此功能,则可以遵循Scalding项目的示例并使用backchat.io分支
  4. sjson-通过Debasish Ghosh
  5. lift-json-可以与Lift项目分开使用
  6. json4s 版本 -从lift-json提取的内容,它试图创建其他JSON库可以使用的标准JSON AST。包括由Jackson支持的实现
  7. 淘金者 💣 § -一个FP-面向JSON库斯卡拉,从后面Scalaz人
  8. play-json ±-现在可以独立使用,
  9. 第戎 -一个方便,安全和高效的JSON库,在后台使用jsoniter-scala
  10. sonofjson-旨在实现超简单API的JSON库
  11. Jawn -Erik Osheim的JSON库,旨在提高Jackson或更快的速度
  12. Rapture JSON ±-可以使用2、4、5、6、7、11或Jackson作为后端的JSON前端
  13. 瑟茜 💣 -淘金的叉建立在顶部的猫,而不是scalaz
  14. jsoniter-scala-用于在编译时生成超快速J​​SON编解码器的Scala宏
  15. jackson-module-scala - Jackson的附加模块,支持特定于Scala的数据类型
  16. 蛀虫 -Scala中高效的CBOR和JSON(反)序列化

💣=没有固定的安全漏洞,§=具有Scalaz集成,±=支持与Jackson互操作 JsonNode

除雪机,我们使用与杰克逊后端json4s;
我们在Argonaut上也有很好的经验。

2020-07-27