Использование json-lift с play, опущенные поля Option прерывают десериализацию - PullRequest
1 голос
/ 17 ноября 2011

Насколько я понимаю, 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 */}

объект возвращается со всеми полями, установленными на ноль.

Еще один интересный факт: это проблема, только когда код находится в каталоге приложенияигрового приложения.Если мы поместим его в другое место и добавим в качестве баночки, он будет работать просто отлично.

Существует мнение, что это проблема со Scala 2.8 (мы находимся в Play 1.2.3 / Akka 1.0 и ограничены в использованиипоследний Scala).

Любая помощь будет оценена ...

...