1

在 Play 2.1 和 Scala 2.10 之前,我使用了 Jerkson。

不幸的是,还没有正式发布的与 Scala 2.10 兼容的 Jerkson 版本。

我自从将 Jackson 与 Scala 模块一起使用以来,但我没有 Enumerations 所需的行为。

我正在尝试使用 Play 2.1 Reads、Writes 和 Format,使用宏 inception 但它似乎真的很痛苦,我需要在我的模型中添加样板文件,以便 inception 工作:

object User extends ((String, String, Option[String], Option[String], Long, Long, Boolean, Boolean, ObjectId) => User) {
 ...
}

然后我可以使用 implicit val userFormat: Format[User] = Json.format[User]

而且我仍然不能动态序列化一个Object,而只是一个User

我没有看过 Lift,但它似乎添加了与 Play2.1 Json 库一样多的样板代码。


我认为序列化在任何语言中都应该很容易。我不想编写自定义序列化程序或自定义解析器。

我希望该库可以使用这样的代码:

case class User(name: String, status: Status.Value)
val myUser = User("toto",Status.VALID)
val myMap: Map[String,Object] = ("key1" -> myUser, "key2" -> "value2")
Json.serialize(myMap)

这就是 Java 中 Gson、Jackson 和其他类似工具提供的功能。


所以对于 Scala 2.10,我不知道该使用哪个工具。而且我不明白为什么我们需要为这种简单的情况构建自定义序列化程序。也许 Play2.1 Json 更快,因为它是基于宏的,但是如果没有提供的格式,它是否有可能使用反射或其他东西?

您知道任何适合我用例的冷却工具吗?

4

2 回答 2

1

Jerkson 有许多分支移植到 2.10,但我不知道有多少分支发布到 Maven 存储库。

这是我的,主要来自Rand Hindi 的加上我自己的一些补丁。

于 2013-04-11T22:33:40.340 回答
0

我用Jackson Scala Module替换了我的 Jerkson 代码,它工作正常

于 2013-07-25T21:32:33.917 回答