ケース クラスから作成された 2 つの JsValue があります。つまり、ブックとブックの詳細です。
val bookJson = Json.tojson(Book)
val bookDetailJson = Json.tojson(BookDetail)
フォーマットは次のようになります。
//Book
{
id: 1,
name: "A Brief History of Time"
}
//BookDetail
{
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
play-framework 2.10 でそれらを単一の Json にマージするにはどうすればよいですか? すなわち
//Book with detail
{
id: 1,
name: "A Brief History of Time",
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
私は変換を試みていましたが、2 番目の JsValue を反復処理できませんでした:
val mapDetail = (__).json.update(
__.read[JsObject].map { o =>
o.deepMerge( JsObject(Seq(("detail", bookDetailJson))) )
})
bookJson.validate(mapDetail).get
それは私が本当に望んでいない1レベル下になります.
//Book with detail
{
id: 1,
name: "A Brief History of Time",
detail: {
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
}
この Json 変換で提供できるトリックがあれば教えてください。どうもありがとう!