Reactivemongo嵌套JSON结构

时间:2014-12-02 19:37:58

标签: scala playframework playframework-2.3 reactivemongo play-reactivemongo

我目前正在使用reactivemongo Play Framework 2.3.6处理"org.reactivemongo" %% "play2-reactivemongo" % "0.10.5.0.akka23"中的简单项目,我遇到嵌套结构问题。

我的目标是映射诸如JSON结构(与Scala等效):

{
    _id: ObjectId,
    url: String,
    description: String,
    visitors: [
        _id: ObjectId,
        isFirstTime: Boolean
    ]
}

我的Scala代码:

import play.api.libs.json.Json
import play.modules.reactivemongo.json.BSONFormats._
import reactivemongo.bson._
import reactivemongo.bson.BSONObjectID

case class Visitor(_id: BSONObjectID, isFirstTime: Boolean)
case class Project(_id: BSONObjectID, url: String, description: String, visitors: List[Visitor])

object JSONFormats {
    implicit val projectFormat = Json.format[Project]
}

在最后一行显示以下错误:"No implicit format for List[models.Visitor] available."

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Visitor添加格式化程序。通俗地说,这些应该放在配套对象中。

object Visitor {
  implicit val fmt = Json.format[Visitor]
}

object Project {
  implicit val fmt = Json.format[Project]
}