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...