我有一个案例类
case class Person(firstName: String, lastName: String)
我想把它打印成JSON。我在Play Framework 2.1.x中工作。我也碰巧在我的类路径中有Salat库,所以我也可以使用它。我想看看所有选项是什么,但包括json4s等。
Scala中的JSON库一直在快速发展。我相信这可以通过使用宏等所有案例类的几行代码(即,不需要每个案例类的附加代码)来完成。
我相信我可以使用play的内置基于宏的Json库,但我希望看到一些经过实践证明的例子。我知道一些起点:
http://eng.42go.com/working-with-json-in-play-2-1/
https://github.com/novus/salat/wiki/JSON
Scala 2.10, its impact on JSON libraries and case class validation/creation
但是我希望看到使用json4s等的例子。
我喜欢Play 2.x中内置的JSON支持。它有效,它有很好的文档记录,而且只需要担心一点。
你的jaz非常印刷的Person
将在两行(加上导入)完成:
import play.api.libs.json._
...
implicit val personFormat = Json.format[Person]
println(Json.toJson(personToWrite))
Scala pickling是新的,即将到来的方式。它应该非常快,看起来很简单。
当前版本为0.8.0-SNAPSHOT,未来0.8.0被宣传为稳定版本。
您需要更多依赖项来处理JSON:
libraryDependencies += "com.typesafe.play" %% "play-json" % "2.7.0"
然后,您可以导入新的库并使用生成的JSON:
import play.api.libs.json.Json
val readableString: String = Json.prettyPrint(json)
后一行只是一个例子,通常你不直接以这种方式使用它,而是用它来保存或交换数据。