Cómo fusionar un JsValue a JsObject en un nivel plano
Tengo dos JsValue creados a partir de la clase de caso, es decir, libro y detalle del libro
val bookJson = Json.tojson(Book)
val bookDetailJson = Json.tojson(BookDetail)
y el formato sería:
//Book
{
id: 1,
name: "A Brief History of Time"
}
//BookDetail
{
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
¿Cómo puedo unirlos a un solo Json en Play-Framework 2.10? es decir
//Book with detail
{
id: 1,
name: "A Brief History of Time",
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
Estaba intentando la transformación y no pude iterar a través del segundo JsValue:
val mapDetail = (__).json.update(
__.read[JsObject].map { o =>
o.deepMerge( JsObject(Seq(("detail", bookDetailJson))) )
})
bookJson.validate(mapDetail).get
Se convertiría en un nivel por debajo, lo que realmente no quiero.
//Book with detail
{
id: 1,
name: "A Brief History of Time",
detail: {
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
}
Por favor, avíseme si algún truco podría proporcionar en esta transformación Json. ¡Muchas gracias!