Play Framework Json 직렬화 실패

조산

암시 적 Json이 다음과 같이 읽고 씁니다.

  implicit val userJsonWrites = new Writes[User] {
    override def writes(user: User): JsValue = Json.obj(
      idKey -> Json.toJson(user._id),
      firstNameKey -> Json.toJson(user.firstName),
      lastNameKey -> Json.toJson(user.lastName),
      emailKey -> Json.toJson(user.email),
      //passKey -> Json.toJson(user.pass),
      addressKey -> Json.toJson(user.address),
      createDateKey  -> Json.toJson(user.createDate),
      activateDateKey  -> Json.toJson(user.activateDate),
      isUserActivatedKey -> Json.toJson(user.isUserActivated),
      verificationDateKey  -> Json.toJson(user.verificationDate)
    )
  }

  implicit val userJsonReads = new Reads[User] {
    override def reads(json: JsValue): JsResult[User] = {
      val user = User(
        _id = (json \ idKey).as[Option[String]],
        firstName =  (json \ firstNameKey).as[String],
        lastName =  (json \ lastNameKey).as[String],
        email =  (json \ emailKey).as[String],
        pass =  (json \ passKey).as[String],
        address = (json \ addressKey).as[Address],
        createDate =  (json \ createDateKey).as[DateTime],
        activateDate =  (json \ activateDateKey).as[Option[DateTime]],
        verificationDate =  (json \ verificationDateKey).as[Option[DateTime]],
        isUserActivated = (json \ isUserActivatedKey).as[Boolean]
      )

      JsSuccess(user)
    }
  }

컴파일 할 때 다음과 같은 오류가 발생합니다.

Error:(84, 32) not enough arguments for method as: (implicit fjs: play.api.libs.json.Reads[Option[String]])Option[String].
Unspecified value parameter fjs.
        _id = (json \ idKey).as[Option[String]],
                               ^
Error:(84, 32) No Json deserializer found for type Option[String]. Try to implement an implicit Reads or Format for this type.
        _id = (json \ idKey).as[Option[String]],
                           ^

내 사용자 개체는 다음과 같습니다.

case class User(
  _id: Option[String],
  createDate: DateTime,
  activateDate: Option[DateTime],
  verificationDate: Option[DateTime],
  email: String,
  pass: String,
  firstName: String,
  lastName: String,
  isUserActivated: Boolean,
  address: Address
)

_id는 실제로 내가 옵션으로 가지고 있어야하는 MongoDB의 ObjectId입니다!

파티 돈 메즈

사용 asOpt, 문서 참조

다음과 같아야합니다.

...
_id = (json \ idKey).asOpt[String]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Play Framework 2.5 JSON 특성 직렬화

분류에서Dev

JsonParseException : JSON 역 직렬화 실패

분류에서Dev

C # Json 역 직렬화 실패

분류에서Dev

Scala (Play Framework)에서 객체를 JSON 기본 유형으로 직렬화

분류에서Dev

Java Play Framework 1.2.x의 PHP 웹 서비스에서 직렬화 된 JSON을 구문 분석하는 방법

분류에서Dev

Play Framework serializer를 사용하여 Scala에서 확장 된 클래스를 JSON으로 직렬화

분류에서Dev

WCF WebInvoke JSON 역 직렬화 실패-400 잘못된 요청

분류에서Dev

Play Json Reads 중첩 된 일반 직렬화 된 Json

분류에서Dev

JsValue 직렬화 실패

분류에서Dev

Alexa Skill 요청 역 직렬화 실패-SkillRequest 개체에 대한 JSON C #

분류에서Dev

Play의 json을 사용하여 동적 필드 이름을 직렬화 / 역 직렬화하는 방법

분류에서Dev

Entity Framework Core C #을 사용하여 JSON 역 직렬화

분류에서Dev

C ++ JSON 직렬화

분류에서Dev

Jackson Json 직렬화

분류에서Dev

JSON 역 직렬화

분류에서Dev

C # Json 역 직렬화가 json 문자열의 첫 번째 문자에서 실패 함

분류에서Dev

System.Text.Json 역 직렬화가 JsonException "많이 읽거나 충분하지 않음"으로 실패합니다.

분류에서Dev

Alamofire 응답 직렬화 실패

분류에서Dev

Newtonsoft 직렬화 후 C # InvokeMethod 실패

분류에서Dev

BreezeSharp-열거 형 직렬화 실패

분류에서Dev

Scala Play Framework Json Serializer 오류

분류에서Dev

RestSharp로 JSON 역 직렬화

분류에서Dev

JSON C # 역 직렬화

분류에서Dev

Flutter / Dart Json 직렬화

분류에서Dev

EastNetQ Json 직렬화 예외

분류에서Dev

JSON 개체 역 직렬화

분류에서Dev

Json .Net 역 직렬화

분류에서Dev

배열 JSON 역 직렬화

분류에서Dev

Json 파일 역 직렬화

Related 관련 기사

뜨겁다태그

보관