0

我有以下对象:

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]

我尝试编写自定义编写器/读取器,但我真的不知道如何跳过 JPath。

4

1 回答 1

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))))
}
于 2017-03-29T15:50:08.673 回答