Play : Json을 역 직렬화하는 동안 데이터를 수정하는 방법

j3d

다음은 사용자 정보를 보유하는 간단한 케이스 클래스입니다.

import play.api.libs.json._
import play.api.libs.functional.syntax._

case class User(
  val username: String,
  val password: String
)

... 그리고 다음은 UserJSON으로 /로부터 객체를 직렬화 / 역 직렬화하는 기능을 제공하는 동반 객체입니다 .

object User {

  implicit val userWrites: Writes[User] = (
    (__ \ 'username).write[String] ~
    (__ \ 'password).write[String]
  )(unlift(User.unapply))

  implict val userReads: Reads[User] = (
    (__ \ 'username).read[String] ~
    (__ \ 'password).read[String] // how do I invoke the password hasher here?
  )(User.apply(_, _))
}

User객체가 항상 해시 된 암호를 포함해야하지만 들어오는 JSON은 항상 일반 텍스트를 제공 한다고 가정 해 봅시다. Reads역 직렬화하는 동안 암호 해시를 호출하도록 어떻게 향상시킬 수 있습니까?

트래비스 브라운

다음에서 map방법을 사용할 수 있습니다 Reads.

def doSomething(s: String) = s * 3

case class User(val username: String, val password: String)

object User {
  implicit val userWrites: Writes[User] = (
    (__ \ 'username).write[String] ~
    (__ \ 'password).write[String]
  )(unlift(User.unapply))

  implicit val userReads: Reads[User] = (
    (__ \ 'username).read[String] ~
    (__ \ 'password).read[String].map(doSomething)
  )(User.apply(_, _))
}

그리고:

scala> Json.parse("""{"username": "foo", "password": "bar"}""").as[User]
res0: User = User(foo,barbarbar)

그러나 이것은 당신 ReadsWrites더 이상 서로 반대가 아님을 의미합니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

MVC에서 JSON 데이터를 역 직렬화하는 방법

분류에서Dev

C #에서 역 직렬화하는 동안 참조 수정을 수행하는 방법은 무엇입니까?

분류에서Dev

xml을 역 직렬화하는 동안 jackson으로 중복 키를 허용하는 방법

분류에서Dev

C #에서 동적 및 정적 키 이름으로 JSON을 역 직렬화하는 방법

분류에서Dev

Finatra FeatureTests : 반환 된 json을 수동으로 역 직렬화하는 방법

분류에서Dev

클래스 이름을 동적 값으로 사용하여 json을 역 직렬화하는 방법

분류에서Dev

XML을 역 직렬화 할 때 값이 null 인 것을 수정하는 방법

분류에서Dev

Jackson 및 @JSonPOJOBuilder를 사용하여 JSON을 역 직렬화하는 동안 파서 컨텍스트를 검색하는 방법

분류에서Dev

Ext JS 저장소에서 json 데이터를 역 직렬화하는 동안 모델 유형 구별

분류에서Dev

변수 이름과 배열로 JSON을 역 직렬화하는 방법

분류에서Dev

C #에서 역 직렬화하는 동안 JSON 문자열에없는 속성의 초기화를 방지하는 방법은 무엇입니까?

분류에서Dev

@@를 포함하는 json 문자열을 scala로 역 직렬화하는 방법 '

분류에서Dev

정수를 키로 사용하여 JSON을 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

json 배열과 일반 속성을 jackson의 pojo로 역 직렬화하는 방법. 어레이 만 작동

분류에서Dev

Json.NET을 사용하여 ArrayList의 ArrayList를 직렬화 및 역 직렬화하는 방법

분류에서Dev

JavaScriptSerializer를 사용하여 JSON을 튜플으로 역 직렬화하는 방법

분류에서Dev

C #에서 테이블과 값으로 JSON을 역 직렬화하는 방법

분류에서Dev

Windows Phone에서 JSON 데이터를 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

JSON 데이터를 모델 객체의 배열로 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

역 직렬화하는 동안 POCO 속성과 일치하지 않는 나머지 JSON 데이터를 어떻게 든 포착 할 수 있습니까?

분류에서Dev

JSON 문자열을 역 직렬화하는 동안 String.Join을 수행하는 방법은 무엇입니까?

분류에서Dev

JSON 문자열을 역 직렬화하는 동안 String.Join을 수행하는 방법은 무엇입니까?

분류에서Dev

GSON를 사용하여 알 수없는 원시적 인 JSON 속성 유형을 역 직렬화하는 방법

분류에서Dev

Unity에서 GameObject 및 Vector2를 포함하는 사전을 직렬화 및 역 직렬화하는 방법

분류에서Dev

C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

직렬화 할 때 '이름'속성을 수동으로 설정하는 방법

분류에서Dev

파이썬 GIL을 사용하지 않고 직렬화 / 역 직렬화하는 방법이 있습니까?

분류에서Dev

일리노이 에디슨을 사용하여 직렬화 / 역 직렬화하는 방법

Related 관련 기사

  1. 1

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

  2. 2

    MVC에서 JSON 데이터를 역 직렬화하는 방법

  3. 3

    C #에서 역 직렬화하는 동안 참조 수정을 수행하는 방법은 무엇입니까?

  4. 4

    xml을 역 직렬화하는 동안 jackson으로 중복 키를 허용하는 방법

  5. 5

    C #에서 동적 및 정적 키 이름으로 JSON을 역 직렬화하는 방법

  6. 6

    Finatra FeatureTests : 반환 된 json을 수동으로 역 직렬화하는 방법

  7. 7

    클래스 이름을 동적 값으로 사용하여 json을 역 직렬화하는 방법

  8. 8

    XML을 역 직렬화 할 때 값이 null 인 것을 수정하는 방법

  9. 9

    Jackson 및 @JSonPOJOBuilder를 사용하여 JSON을 역 직렬화하는 동안 파서 컨텍스트를 검색하는 방법

  10. 10

    Ext JS 저장소에서 json 데이터를 역 직렬화하는 동안 모델 유형 구별

  11. 11

    변수 이름과 배열로 JSON을 역 직렬화하는 방법

  12. 12

    C #에서 역 직렬화하는 동안 JSON 문자열에없는 속성의 초기화를 방지하는 방법은 무엇입니까?

  13. 13

    @@를 포함하는 json 문자열을 scala로 역 직렬화하는 방법 '

  14. 14

    정수를 키로 사용하여 JSON을 역 직렬화하는 방법은 무엇입니까?

  15. 15

    json 배열과 일반 속성을 jackson의 pojo로 역 직렬화하는 방법. 어레이 만 작동

  16. 16

    Json.NET을 사용하여 ArrayList의 ArrayList를 직렬화 및 역 직렬화하는 방법

  17. 17

    JavaScriptSerializer를 사용하여 JSON을 튜플으로 역 직렬화하는 방법

  18. 18

    C #에서 테이블과 값으로 JSON을 역 직렬화하는 방법

  19. 19

    Windows Phone에서 JSON 데이터를 역 직렬화하는 방법은 무엇입니까?

  20. 20

    JSON 데이터를 모델 객체의 배열로 역 직렬화하는 방법은 무엇입니까?

  21. 21

    역 직렬화하는 동안 POCO 속성과 일치하지 않는 나머지 JSON 데이터를 어떻게 든 포착 할 수 있습니까?

  22. 22

    JSON 문자열을 역 직렬화하는 동안 String.Join을 수행하는 방법은 무엇입니까?

  23. 23

    JSON 문자열을 역 직렬화하는 동안 String.Join을 수행하는 방법은 무엇입니까?

  24. 24

    GSON를 사용하여 알 수없는 원시적 인 JSON 속성 유형을 역 직렬화하는 방법

  25. 25

    Unity에서 GameObject 및 Vector2를 포함하는 사전을 직렬화 및 역 직렬화하는 방법

  26. 26

    C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

  27. 27

    직렬화 할 때 '이름'속성을 수동으로 설정하는 방법

  28. 28

    파이썬 GIL을 사용하지 않고 직렬화 / 역 직렬화하는 방법이 있습니까?

  29. 29

    일리노이 에디슨을 사용하여 직렬화 / 역 직렬화하는 방법

뜨겁다태그

보관