我正在为 Scala 寻找一个好的 JSON 库,它可以将任意对象图序列化为 JSON,而无需我编写映射代码。
Java 的 Jackson 做到了这一点,但它不是 Scala 原生的,我在反序列化嵌套泛型(我将其归因于 Java 类型系统)时遇到了一些麻烦。Jerkson 是 Jackson 的 Scala 包装器,但它已经被废弃了几年。
你有什么建议吗?
Core Jackson 没有明确的 Scala 支持,但 Jackson Scala 模块:
https://github.com/FasterXML/jackson-module-scala
确实支持 Scala 数据类型。
play-json,http://mvnrepository.com/artifact/com.typesafe.play/play-json_2.11,是一个不错的选择。它实际上是 Jackson 的包装器,但提供了许多实用程序来减轻序列化和反序列化。更多详情,https://www.playframework.com/documentation/2.4.x/ScalaJson
此外,它已经为 Scala 中的基本数据类型提供了读写功能。您需要做的就是在伴随对象中定义模型的格式。
import play.api.libs.json.Json
implicit val format = Json.format[YourObject]
这是一个详细的例子,https://github.com/luongbalinh/play-mongo/blob/master/app/models/User.scala