{
"id": 1,
"name": "ユーザー",
"email": "user@example.com"
}
play.api.libs.json
を使ってJSONを扱えるimport play.api.libs.json._
例:UserクラスをJSONに変換/変換から復元
case class User(id: Long, name: String)
object User {
implicit val userFormat: Format[User] = Json.format[User]
}
Json.format[T]
:Reads
(JSON→オブジェクト)とWrites
(オブジェクト→JSON)を自動で生成def receiveJson = Action(parse.json) { request =>
val result = request.body.validate[User]
result.fold(
errors => BadRequest("Invalid JSON"),
user => Ok("Received user: " + user.name)
)
}
Action(parse.json)
:「リクエストボディをJSONとして扱う」という宣言request.body.validate[user]
:JSONをUserオブジェクトに変換しようとしているdef getJson = Action {
val user = User(1, "ユーザー")
Ok(Json.toJson(user))
}
Json.toJson(user)
:UserオブジェクトをJSON文字列に変換