我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。
Improve this question
我需要构建一个 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 += ...
最接近此的库/解决方案是什么?
不幸的是,编写 JSON 库是 Scala 社区版本的待办事项列表应用程序编码。
有很多选择。我不按特定顺序列出它们,并附注:
- parsing.json.JSON - 警告此库仅适用于 Scala 2.9.x 版(在较新版本中已删除)
- spray-json - 从 Spray 项目中提取
- Jerkson ± - 警告 一个不错的库(建立在 Java Jackson 之上),但现在废弃了。如果您打算使用它,可能按照 Scalding 项目的示例并使用 backchat.io fork
- sjson - Debasish Ghosh 着
- lift-json - 可以与 Lift 项目分开使用
- json4s ?
§ ± - 从 lift-json 中提取,它试图创建其他 JSON 库可以使用的标准 JSON AST。包括由 Jackson 支持的实现
- Argonaut ?
§ - 一个面向 FP 的 Scala JSON 库,来自 Scalaz 背后的人
- play-json ± - 现在可以单独使用,见 this answer for details
- dijon - 一个方便、安全、高效的 JSON 库,使用 jsoniter-scala引擎盖下。
- sonofjson - 针对超简单 API 的 JSON 库
- Jawn - Erik Osheim 的 JSON 库,旨在实现 jackson 或更快的速度
- Rapture JSON ± - 一个 JSON 前端,可以使用 2、4、5、6、7、11 或 Jackson 作为后端
- circe ? - Argonaut 的前叉建立在 cats 之上而不是scalaz
- jsoniter-scala - 用于在编译时生成超快速 JSON 编解码器的 Scala 宏
- jackson-module-scala - Jackson 的附加模块支持 Scala 特定的数据类型
- borer - Scala 中的高效 CBOR 和 JSON(反)序列化
? = 未修复安全漏洞,§ = 已集成 Scalaz,± = 支持与 Jackson JsonNode
互操作
在 Snowplow我们使用带有 Jackson 后端的 json4s;我们对 Argonaut 也有很好的体验。