Interacting with JSON
JSON, as we discovered in previous chapters, is becoming the de-facto language for communicating structured data over HTTP. If you develop a web application or a web API, it is likely that you will have to consume or emit JSON, or both.
In Chapter 7, Web APIs, we learned how to parse JSON through json4s. The Play framework includes its own JSON parser and emitter. Fortunately, it behaves in much the same way as json4s.
Let's imagine that we are building an API that summarizes information about GitHub repositories. Our API will emit a JSON array listing a user's repositories when queried about a specific user (much like the GitHub API, but with just a subset of fields).
Let's start by defining a model for the repository. In Play applications, models are normally stored in the folder app/models, in the models package:
// app/models/Repo.scala package models case class Repo ( val name:String, val language:String, val isFork: Boolean, val size: Long )
Let's add a route...