Como mesclar um JsValue ao JsObject em nível plano
Eu tenho dois JsValue criados a partir da classe de caso, ou seja, livro e livro detalhe
val bookJson = Json.tojson(Book)
val bookDetailJson = Json.tojson(BookDetail)
e o formato seria:
//Book
{
id: 1,
name: "A Brief History of Time"
}
//BookDetail
{
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
Como posso mesclá-los para um único Json no play-framework 2.10? isto é
//Book with detail
{
id: 1,
name: "A Brief History of Time",
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
Eu estava tentando a transformação e não consegui percorrer o segundo JsValue:
val mapDetail = (__).json.update(
__.read[JsObject].map { o =>
o.deepMerge( JsObject(Seq(("detail", bookDetailJson))) )
})
bookJson.validate(mapDetail).get
Isso se tornaria um nível abaixo, o que eu realmente não quero.
//Book with detail
{
id: 1,
name: "A Brief History of Time",
detail: {
bookId: 1,
author: "Steven Hawking",
publicationDate: 1988,
pages: 256
}
}
Por favor, deixe-me saber se algum truque poderia fornecer sobre esta transformação Json. Muito Obrigado!