Нет Json-сериализатора как JsObject для типа play.api.libs.json.JsObject
У меня есть следующий код, который работает в консольном приложении при ссылке "org.reactivemongo" %% "play2-reactivemongo" % "0.10.5.0.akka23"
когда я обновляю ссылку на "org.reactivemongo" % "play2-reactivemongo_2.11" % "0.11.0.play23-M3"
, я получаю:
Нет Json-сериализатора JSObject для типа play.api.libs.json.JsObject. Попробуйте реализовать неявные OWrites или OFormat для этого типа.
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]
}
а затем
val collection = db.collectionJSONCollection
val query = Json.obj()
val cursor = collection.find(query).
cursor[GoogleToken](ReadPreference.nearest).
collect[List]()
Что я делаю неправильно?
Ответы
Ответ 1
Вышла окончательная версия ReactiveMongo 0.11 ("org.reactivemongo" %% "play2-reactivemongo" % "0.11.0.play23"
).
Как указано в обновленной документации, для конверсий BSON/JSON по умолчанию рекомендуется иметь: import play.modules.reactivemongo.json._, ImplicitBSONHandlers._
.
Ответ 2
В моем случае я загружал ReactiveMongo (insert
) вместо JsValue
вместо JsValue
. Чтобы исправить это, за добавлением import play.modules.reactivemongo.json._
мне также пришлось изменить неявный Writes
в OWrites
:
от
implicit val myWrites: Writes[A] = new Writes[A] {
def writes(a: A) = Json.obj(...)
к
implicit val myWrites: OWrites[A] = new OWrites[A] { <-- NOTE THE 'O' before 'Writes'
def writes(a: A) = Json.obj(...)
Ответ 3
Шахта разработана после добавления:
import play.modules.reactivemongo.json._
import play.modules.reactivemongo.json.collection._
Ответ 4
Для меня добавление этого импорта сработало.
import play.modules.reactivemongo.json._
Ответ 5
попробуйте добавить
импортировать реактивныеmongo.play.json._