So führen Sie einen JsValue auf einer flachen Ebene zu JsObject zusammen
Ich habe zwei JsValue aus der Fallklasse erstellt, d. H. Buch und Buchdetail
val bookJson = Json.tojson(Book)
val bookDetailJson = Json.tojson(BookDetail)
und das Format wäre:
//Book
{
id: 1,
name: "A Brief History of Time"
}
//BookDetail
{
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
Wie kann ich sie in Play-Framework 2.10 zu einem einzelnen Json zusammenführen? d.h.
//Book with detail
{
id: 1,
name: "A Brief History of Time",
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
Ich habe die Transformation versucht und konnte den zweiten JsValue nicht durchlaufen:
val mapDetail = (__).json.update(
__.read[JsObject].map { o =>
o.deepMerge( JsObject(Seq(("detail", bookDetailJson))) )
})
bookJson.validate(mapDetail).get
Es würde eine Ebene tiefer werden, was ich nicht wirklich will.
//Book with detail
{
id: 1,
name: "A Brief History of Time",
detail: {
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
}
Bitte lassen Sie mich wissen, ob ein Trick für diese Json-Transformation hilfreich ist. Danke vielmals!