EDIT2
Новая Вики-ссылка для v2.1. Старая ссылка ниже не работает.
EDIT
Мы все будем рады прочитать новую запись в Вики по этому вопросу. Проверьте это из
Назад
Вот комментарий сообщества о состоянии поддержки Json в игре 2.0.
ссылка на сообщение
Они переходят от Джексона к философии, вдохновленной SJSON , которая предлагает больший контроль над распаковыванием / упорядочением, который предоставляет возможности для управления ими, без накладных расходов на Reflection (что я с ними согласен) это боль в производительности и хрупкость по отношению к изменениям класса ...)
Итак, вот что вы можете прочитать на посту:
case class Blah(blah: String)
// if you want to directly serialize/deserialize, you need to write yourself a formatter right now
implicit object BlahFormat extends Format[Blah] {
def reads(json: JsValue): Blah = Blah((json \ "blah").as[String])
def writes(p: Blah): JsValue = JsObject(List("blah" -> JsString(p.blah)))
}
def act = Action { implicit request =>
// to get a Blah object from request content
val blah = Json.parse(request.body.asText.get).as[Blah]
// to return Blah as application/json, you just have to convert your Blah to a JsValue and give it to Ok()
Ok(toJson(blah))
}
Во второй ссылке ( SJSON ) я предлагаю вам обратить особое внимание на общее форматирование, возможное с помощью case class
и их метода деконструкции (unapply
).