隐式json读取和写入列表



我遵循以下示例https://github.com/leon/play-salat/tree/master/sample。在我的数据模型中,我有列表,我试图采用该模型。

我得到以下编译错误:
[error] /home/malte/workspace/bdt/app/models/Ballot.scala:26: No Json deserializer found        for type List[models.Position]. Try to implement an implicit Writes or Format for this type.
[error]         "positions" -> b.positions,
[error]                          ^
[error] /home/malte/workspace/bdt/app/models/Ballot.scala:33: No Json deserializer found for type List[models.Position]. Try to implement an implicit Reads or Format for this type.
[error]       (__  'values).read[List[Position]]).map { l => l.getOrElse(Nil) } ~

对于类型"Position",我有隐式读取和写入,但如何使它为List[Position] ?我的隐式写和读:

implicit val ballotJsonWrite = new Writes[Ballot] {
  def writes(b: Ballot): JsValue = {
    Json.obj(
      "positions" -> b.positions,
      "title" -> b.title)
  }
}
implicit val ballotJsonRead = (
(__  'positions).readNullable(
  (__  'values).read[List[Position]]).map { l => l.getOrElse(Nil) } ~
  (__  'title).read[String])(Ballot.apply _)

对于读取,我遵循为列表集合创建隐式json读取,这可能从输入json中缺失,但我得到上面提到的错误。

实际上现在我在最新版本的salat中发现了这一点。Json被自动用于在模型和Json对象之间移动。我把整个零件都去掉了,现在它运行得很顺利。

https://github.com/novus/salat/wiki/JSON

相关内容

  • 没有找到相关文章

最新更新