Jak połączyć JsValue z JsObject na płaskim poziomie
Mam dwie wartości JsValue utworzone z klasy case, tj. Szczegóły książki i książki
val bookJson = Json.tojson(Book)
val bookDetailJson = Json.tojson(BookDetail)
a format byłby:
//Book
{
id: 1,
name: "A Brief History of Time"
}
//BookDetail
{
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
Jak mogę połączyć je z pojedynczym Jsonem w framework'u 2.10? to znaczy
//Book with detail
{
id: 1,
name: "A Brief History of Time",
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
Próbowałem transformacji i nie udało mi się powtórzyć drugiej JsValue:
val mapDetail = (__).json.update(
__.read[JsObject].map { o =>
o.deepMerge( JsObject(Seq(("detail", bookDetailJson))) )
})
bookJson.validate(mapDetail).get
Stanie się jeden poziom niżej, czego tak naprawdę nie chcę.
//Book with detail
{
id: 1,
name: "A Brief History of Time",
detail: {
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
}
Daj mi znać, jeśli jakaś sztuczka może dostarczyć tej transformacji Jsona. Wielkie dzięki!