在Play Framework 2.1.x中将Scala案例类打印到JSON的最简单方法是什么?

问题描述 投票:3回答:3

我有一个案例类

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等的例子。

json scala playframework-2.0 case-class
3个回答
3
投票

我喜欢Play 2.x中内置的JSON支持。它有效,它有很好的文档记录,而且只需要担心一点。

你的jaz非常印刷的Person将在两行(加上导入)完成:

import play.api.libs.json._
...
implicit val personFormat = Json.format[Person]
println(Json.toJson(personToWrite))

2
投票

Scala pickling是新的,即将到来的方式。它应该非常快,看起来很简单。

当前版本为0.8.0-SNAPSHOT,未来0.8.0被宣传为稳定版本。


0
投票

您需要更多依赖项来处理JSON:

libraryDependencies += "com.typesafe.play" %% "play-json" % "2.7.0"    

然后,您可以导入新的库并使用生成的JSON:

import play.api.libs.json.Json
val readableString: String = Json.prettyPrint(json)

后一行只是一个例子,通常你不直接以这种方式使用它,而是用它来保存或交换数据。

© www.soinside.com 2019 - 2024. All rights reserved.