使用json-lift with play,省略Option字段会中断反序列化

时间:2011-11-16 20:58:36

标签: json scala serialization playframework lift-json

我的理解是json-lift支持开箱即用的Option字段。

以下是示例对象定义:

class TopicModel (
    var id: Option[Long],
    var name: String,
    val slug: String,
    var imageUrl: Option[String] )
{}

然后我使用net.liftweb.json.Serialization.read[Topic](jsonString)来读取对象

如果传入的JSON中存在所有字段,则反序列化工作正常。但是,如果我省略了Option字段:

{"id": "35", "name": "My topic", "slug": "my-slug" /** imageUrl missing */}

对象返回时将所有字段设置为null。

另一个有趣的事实:当代码位于Play应用程序的app目录下时,这只是一个问题。如果我们把它放在其他地方并作为一个罐子包含它就可以了。

有一种观点认为这是Scala 2.8的问题(我们使用的是Play 1.2.3 / Akka 1.0,并且仅限于使用最新的Scala)。

任何帮助将不胜感激......

0 个答案:

没有答案