title: How to merge a JsValue to JsObject in flat level
body: <p>I have two JsValue created from case class, i.e. Book and Book detail</p>
  
  <pre><code>val bookJson = Json.tojson(Book)
  val bookDetailJson = Json.tojson(BookDetail)
  </code></pre>
  
  <p>and the format would be:</p>
  
  <pre><code>//Book
  {
    id: 1,
    name: "A Brief History of Time"
  }
  
  //BookDetail
  {
    bookId: 1,
    author: "Steven Hawking",
    publicationDate: 1988,
    pages: 256
  }
  </code></pre>
  
  <p>How can I merge them to a single Json in play-framework 2.10? i.e.</p>
  
  <pre><code>//Book with detail
  {
    id: 1,
    name: "A Brief History of Time",
    bookId: 1,
    author: "Steven Hawking",
    publicationDate: 1988,
    pages: 256
  }
  </code></pre>
  
  <p>I was trying the transformation and failed to iterate through the second JsValue:</p>
  
  <pre><code>val mapDetail = (__).json.update(
                    __.read[JsObject].map { o =&gt;
                    o.deepMerge( JsObject(Seq(("detail", bookDetailJson))) )
                  })
  
  bookJson.validate(mapDetail).get
  </code></pre>
  
  <p>It would become one level down, which I don't really want.</p>
  
  <pre><code>//Book with detail
  {
    id: 1,
    name: "A Brief History of Time",
    detail: {
              bookId: 1,
              author: "Steven Hawking",
              publicationDate: 1988,
              pages: 256
            }
  }
  </code></pre>
  
  <p>Please let me know if any trick could provide on this Json transform.  Many Thanks!</p>