1

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

这是一个示例对象定义:

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

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

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

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

对象返回时所有字段都设置为空。

另一个有趣的事实:只有当代码位于 play 应用的 app 目录下时才会出现问题。如果我们将它放在其他地方并作为罐子包含在内,它就可以正常工作。

有人认为这是 Scala 2.8 的问题(我们使用的是 Play 1.2.3 / Akka 1.0,并且限制使用最新的 Scala)。

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

4

0 回答 0