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,它对 JSON 库和案例类验证/创建的影响

但我也希望看到使用 json4s 等的示例。

4

3 回答 3

3

I like the built-in JSON support in Play 2.x. It works, it's well documented, and it's just one less dependency to worry about.

Your JSON pretty-print of Person would be accomplished in two lines (plus an import):

import play.api.libs.json._
...
implicit val personFormat = Json.format[Person]
println(Json.toJson(personToWrite))
于 2013-10-28T04:52:29.653 回答
2

Scala 酸洗是实现这一目标的新方法。它应该非常快并且看起来很简单。

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

于 2013-10-27T18:49:16.947 回答
1

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

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

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

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

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

于 2019-02-27T06:08:11.960 回答