Scala 2.10中的Json序列化



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

遗憾的是,官方还没有发布与Scala 2.10兼容的jackson版本。

我一直在使用Jackson与Scala模块,但我没有期望的Enumerations行为。

我试图使用Play 2.1读取,写入和格式,使用宏开始,但它似乎真的很痛苦,我需要添加样板的东西到我的模型,以便开始工作:

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是更快的,因为它是基于宏,但不是有一种可能性,所以如果没有格式提供它使用反射或什么?

你知道有什么工具可能适合我的用例吗?

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

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

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

最新更新