title: Flatten extranous fields when extracting using LiftJson or Json4s
body: <p>I want to extract using LiftJson or Json4s the following Json (not quite but something similar) to the following case classes.</p>
  
  <pre><code>{
    "data": [
      {
      "id": "1234",
      "message": "Test",
      "comments": {
        "data": [
          {
            "id": "4321",
            "content": "Test2",
          }
        ]
      }
  }
  </code></pre>
  
  <p>The case classes:</p>
  
  <pre><code>case class A(id: String, message: string, comments: List[B])
  case class B(id: String, content: String)
  </code></pre>
  
  <p>For the top level I can do: <code>(val \ "data").extract[List[A]]</code> to flatten the extra data field. But for the second level one, I don't see I way to use extract DIRECTLY.</p>
  
  <p>Could I use a custom serializer (exemple <a href="https://github.com/json4s/json4s/blob/47f5ed03b7f1d32ed383c1a92898124cd7fe917a/ext/src/main/scala/org/json4s/ext/JodaTimeSerializers.scala" rel="nofollow">here</a>) or any of the following function (json4s) to remove the extraneous "data" field? Or any idea to make it simple?</p>
  
  <pre><code>def mapField(f: JField =&gt; JField): JValue
  def transformField(f: PartialFunction[JField, JField]): JValue
  </code></pre>
  
  <p>Want I want to avoid is creating others intermidiate case class to extract the data, and then create the shown case class with it.</p>