Scala JSON库具有自动序列化功能(通过内省)



我正在为Scala寻找一个好的JSON库,它可以将任意对象图序列化为JSON,而不需要我编写映射代码。

Java的Jackson做到了这一点,但它不是Scala的原生版本,我在让它反序列化嵌套泛型(我将其归因于Java类型系统)方面遇到了一些困难。还有杰克森,一个为杰克逊设计的Scala包装,但它已经被废弃了几年。

你推荐什么?

播放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

Core Jackson没有明确的Scala支持,但Jackson Scala模块:

https://github.com/FasterXML/jackson-module-scala

确实支持Scala数据类型。

最新更新