playframework/Play20 — pull request #40 by rschellhorn (2011-12-16 15:00:09+00:00)
Title: Refactored Json conversions to implicit methods instead of objects

Refactored out the need to define Reads and Writes objects. Instead one can just define implicit methods.

Also a lot of implicit conversions are now imported automatically so one could write:

```scala
case class User(id: Long, name: String, friends: List[User])

implicit def userListReader(json: JsValue): List[User] = listReader(json)
implicit def reads(json: JsValue): User = User(
json \ "id",
json \ "name",
(json \ "friends").asOpt[List[User]].getOrElse(List()))
```

Note the Json objects being implicitly converted into the correct types, instead of having to do this manually using json.as[Type].

Also note the pull request lacks conversions for Seq, Arrays, etc.