MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Kein Json-Deserializer für Typ Option[reactivemongo.bson.BSONObjectID] gefunden

Seltsam! Mein Intellij IDEA 12 hat den Import nicht erkannt und als ich die Importe optimiert habe

import play.modules.reactivemongo.json.BSONFormats._

wurde entfernt, wodurch der Fehler verursacht wurde.

Man könnte auch ein benutzerdefiniertes Format-Objekt erstellen, um die BSONObjectID in json zu übersetzen.

implicit object BSONObjectIDFormat extends Format[BSONObjectID] {
    def writes(objectId: BSONObjectID): JsValue = JsString(objectId.toString())
    def reads(json: JsValue): JsResult[BSONObjectID] = json match {
      case JsString(x) => {
        val maybeOID: Try[BSONObjectID] = BSONObjectID.parse(x)
        if(maybeOID.isSuccess) JsSuccess(maybeOID.get) else {
          JsError("Expected BSONObjectID as JsString")
        }
      }
      case _ => JsError("Expected BSONObjectID as JsString")
    }
  }

Aber der Import reicht in diesem Fall.