没有Json格式化程序发现Scala,Play框架错误

Vik*_*dya 6 scala playframework

我有以下两个含义.

implicit val readObjectIdFormat = new Reads[ObjectId] {
def reads(jv: JsValue): JsResult[ObjectId] = {
  JsSuccess(new ObjectId(jv.as[String]))
 }
}

implicit val visitorFormat = (
(__ \ "_id").formatOpt[ObjectId] and
(__ \ "visitorId").format[String] and
(__ \ "referralUrl").formatOpt[String] and
(__ \ "ipAddress").formatOpt[String] and
(__ \ "promotionId").format[String])(Visitor)  
Run Code Online (Sandbox Code Playgroud)

虽然readObjectIdFormat是在编译时定义的,但它继续抱怨"(__ \"_ id").formatOpt [ObjectId]"line

找不到类型为org.bson.types.ObjectId的Json格式化程序.尝试为此类型实现隐式格式.

版本:播放2.1-RC2,Scala 2.10

知道为什么它不能识别readObjectIdFormat吗?

小智 0

文档来看Format[T] extends Reads[T] with Writes[T]
Format读+写

然后写一个隐式的 writeObjectIdFormat

implicit val formatObjectIdFormat = 
   Format(readObjectIdFormat, writeObjectIdFormat)
Run Code Online (Sandbox Code Playgroud)