title: Play Framework automatic JSON marshalling
body: <p>I'm looking to be set straight on my understanding of how the Play Framework handles conversion of Scala objects to JSON and vice versa (specifically for RESTful APIs):</p>
  
  <p>I've read over and over again across the web that using Play's JSON support is nothing but a pleasure.  But coming from Spring where I have a built in <code>HttpMessageConverter</code> (specifically <code>MappingJacksonHttpMessageConverter</code>) which will auto marshall requests and responses in my controllers with hardly any effort.</p>
  
  <p>Play, on the other hand, (it appears) requires you to write Read and Write converters for every class you intend to marshal. E.g. (from the <a href="http://www.playframework.com/documentation/2.3.x/ScalaJsonHttp" rel="nofollow">Play Docs</a>):</p>
  
  <pre><code>implicit val locationWrites: Writes[Location] = (
    (JsPath \ "lat").write[Double] and
    (JsPath \ "long").write[Double]
  )(unlift(Location.unapply))
  </code></pre>
  
  <p>To me this seems tedious when compared to the built in automatic message converting capabilities of Spring.  It is my understanding that Play also uses Jackson under the hood so can the same be accomplished with Scala / Play, or perhaps is my premise flawed?</p>