2017-03-29 9 views
0

나는 다음과 같은 개체가 :재생 JSON의 직렬화/역 직렬화 케이스 클래스 그것을

case class Foo(value: UUID) 
case class Bar(foo: Foo) 

내가 그들을 JSON이 같은 직렬화하고 싶은 :

{foo: "e88ad5ea-13cf-4666-addb-c231c12cd3a3"} 

의미

implicit val fooFormat = Json.format[Foo] 
implicit val barFormat = Json.format[Bar] 

I t : 나는 단순히이 작성하는 경우 자동 포맷에 의해 추가 된 "값"인수를 생략 할 ried는 내 사용자 정의 작성자/독자를 쓰지만 실제로는 JPath를 건너 뛰는 방법을 모른다.

답변

0

무엇에 대해 :

implicit val format: Format[Bar] = new Format[Bar] { 
    override def writes(o: Bar): JsValue = Json.obj("foo" -> o.foo.value) 

override def reads(json: JsValue): JsResult[Bar] = 
    (json \ "foo").validate[String].map(s => Bar(Foo(UUID.fromString(s)))) 
} 
+0

예 내가 그 일 것 같아요. 그러나 구체적인 경우 Bar는 실제로 다른 많은 매개 변수를 가지고 있으며 모든 쓰기/쓰기를 작성하지 않아도됩니다. – CanardMoussant