복붙노트

[SCALA] JSObject를 어떠한 JSON 시리얼 타입 play.api.libs.json.JsObject에 대한 발견

SCALA

JSObject를 어떠한 JSON 시리얼 타입 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"에 대한 참조를 업데이트 할 때 내가 얻을 :

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]
}

그리고

발 컬렉션을 db.collectionJSONCollection =

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

내가 무엇을 잘못하고 있지?

해결법

  1. ==============================

    1.ReactiveMongo 0.11의 최종 버전이 공개되었습니다 ( "org.reactivemongo"%% "와 마찬가지로 play2-reactivemongo"% "0.11.0.play23").

    ReactiveMongo 0.11의 최종 버전이 공개되었습니다 ( "org.reactivemongo"%% "와 마찬가지로 play2-reactivemongo"% "0.11.0.play23").

    수입 play.modules.reactivemongo.json._을 ImplicitBSONHandlers._을 : 업데이트 된 문서에 나타난 바와 같이, 기본 BSON / JSON 변환에,하도록 권장합니다.

  2. ==============================

    2.내 경우, 나는 JsValue 대신보다 JSObject를 가진 ReactiveMongo (삽입)를 공급했다. 순서를 고정 수입 play.modules.reactivemongo.json._를 추가 ​​뒤에에, 나는 또한 OWrites 내 암시 쓰기를 변경했다 :

    내 경우, 나는 JsValue 대신보다 JSObject를 가진 ReactiveMongo (삽입)를 공급했다. 순서를 고정 수입 play.modules.reactivemongo.json._를 추가 ​​뒤에에, 나는 또한 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. ==============================

    3.광산 추가 한 후 밖으로 일 : 수입 play.modules.reactivemongo.json._ 수입 play.modules.reactivemongo.json.collection._

    광산 추가 한 후 밖으로 일 : 수입 play.modules.reactivemongo.json._ 수입 play.modules.reactivemongo.json.collection._

  4. ==============================

    4.저를 추가하려면이 수입했다.

    저를 추가하려면이 수입했다.

    import play.modules.reactivemongo.json._
    
  5. ==============================

    5.추가하려고

    추가하려고

    수입 reactivemongo.play.json._

  6. from https://stackoverflow.com/questions/31142366/no-json-serializer-as-jsobject-found-for-type-play-api-libs-json-jsobject by cc-by-sa and MIT license