json scala reactivemongo

No se ha encontrado el serializador Json como JsObject para el tipo play.api.libs.json.JsObject



scala reactivemongo (5)

Tengo el siguiente código que funciona en una aplicación de consola cuando se hace referencia a "org.reactivemongo" %% "play2-reactivemongo" % "0.10.5.0.akka23"

cuando actualizo la referencia a "org.reactivemongo" % "play2-reactivemongo_2.11" % "0.11.0.play23-M3" obtengo:

No se ha encontrado el serializador Json como JsObject para el tipo play.api.libs.json.JsObject. Intente implementar un OWrites u OFormat implícito para este tipo.

import org.joda.time.DateTime import reactivemongo.bson.BSONObjectID import play.modules.reactivemongo.json.BSONFormats._ case class GoogleToken ( id: Option[BSONObjectID], name: String, emailAddress: String, refreshToken: String, expires: DateTime ) object GoogleToken { import play.api.libs.json.Json // Generates Writes and Reads implicit val googleTokenFormat = Json.format[GoogleToken] }

y entonces

colección val = db.collectionJSONCollection

val query = Json.obj() val cursor = collection.find(query). cursor[GoogleToken](ReadPreference.nearest). collect[List]()

¿Qué estoy haciendo mal?


El mío funcionó después de agregar: import play.modules.reactivemongo.json._ import play.modules.reactivemongo.json.collection._


En mi caso, estaba alimentando ReactiveMongo ( insert ) con un JsValue lugar de un JsObject . Para solucionarlo, después de agregar import play.modules.reactivemongo.json._ , también tuve que cambiar mis OWrites implícitas en OWrites :

de

implicit val myWrites: Writes[A] = new Writes[A] { def writes(a: A) = Json.obj(...)

a

implicit val myWrites: OWrites[A] = new OWrites[A] { <-- NOTE THE ''O'' before ''Writes'' def writes(a: A) = Json.obj(...)


Para mí, agregar esta importación funcionó.

import play.modules.reactivemongo.json._


Se ha publicado la versión final de ReactiveMongo 0.11 ( "org.reactivemongo" %% "play2-reactivemongo" % "0.11.0.play23" ).

Como se indica en la documentación actualizada , para las conversiones BSON / JSON predeterminadas, se recomienda tener: import play.modules.reactivemongo.json._, ImplicitBSONHandlers._ .


intenta agregar

import reactivemongo.play.json._