json - 在 Scala 中使用什么 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 += ...

最接近此的库/解决方案是什么?

最佳答案

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

有很多选择。我不按特定顺序列出它们,并附注:

  1. parsing.json.JSON - 警告此库仅适用于 Scala 2.9.x 版(在较新版本中已删除)
  2. spray-json - 从 Spray 项目中提取
  3. Jerkson ± - 警告 一个不错的库(建立在 Java Jackson 之上),但现在废弃了。如果您打算使用它,可能按照 Scalding 项目的示例并使用 backchat.io fork
  4. sjson - Debasish Ghosh 着
  5. lift-json - 可以与 Lift 项目分开使用
  6. json4s ? § ± - 从 lift-json 中提取,它试图创建其他 JSON 库可以使用的标准 JSON AST。包括由 Jackson 支持的实现
  7. Argonaut ? § - 一个面向 FP 的 Scala JSON 库,来自 Scalaz 背后的人
  8. play-json ± - 现在可以单独使用,见 this answer for details
  9. dijon - 一个方便、安全、高效的 JSON 库,使用 jsoniter-scala引擎盖下。
  10. sonofjson - 针对超简单 API 的 JSON 库
  11. Jawn - Erik Osheim 的 JSON 库,旨在实现 jackson 或更快的速度
  12. Rapture JSON ± - 一个 JSON 前端,可以使用 2、4、5、6、7、11 或 Jackson 作为后端
  13. circe ? - Argonaut 的前叉建立在 cats 之上而不是scalaz
  14. jsoniter-scala - 用于在编译时生成超快速 JSON 编解码器的 Scala 宏
  15. jackson-module-scala - Jackson 的附加模块支持 Scala 特定的数据类型
  16. borer - Scala 中的高效 CBOR 和 JSON(反)序列化

? = 未修复安全漏洞,§ = 已集成 Scalaz,± = 支持与 Jackson JsonNode

互操作

在 Snowplow我们使用带有 Jackson 后端的 json4s;我们对 Argonaut 也有很好的体验。

https://stackoverflow.com/questions/8054018/

相关文章:

c# - 使用 JSON.NET 的序列化字段的顺序

json - 在 Swift 3 中正确解析 JSON

arrays - YAML 等效于 JSON 中的对象数组

android - 如何使用 Android 通过 Request 发送 JSON 对象?

javascript - 从浏览器下载 JSON 对象作为文件

android - google-services.json 的真正作用是什么?

json - REST API - 文件(即图像)处理 - 最佳实践

ios - 如何在 Swift 中解析来自 Alamofire API 的 JSON 响应?

c# - JSON.net:如何在不使用默认构造函数的情况下反序列化?

c# - 如何在 C# 中将字典转换为 JSON 字符串?