So habe ich eine Struktur in json wie folgt aussehen:Play-Framework lesen von json Liste
{
"lst": [
{"name": "foo"},
{"name": "bar"}
]
}
ich die härteste Zeit, die diese zu einer Liste von Fallklassen zu konvertieren. Ich bin sicher, ich bin etwas fehlt ganz offensichtlich ...
Ich habe dies versucht:
case class Person(name: String)
implicit val personReads: Reads[Email] = (__ \\ "name").read[String](Person)
// endpoint
def person = Action { request =>
val person = request.body.asJson.get.as[Seq[Person]]
}
, die nicht da read
nicht kompiliert kehrt nicht ein FunctionBuilder
was bedeutet, kann ich nicht gelten der Weg zum Person
einen neuen Parameter nicht kompiliert (die json und Fallklasse ändert sich entsprechend) Hinzufügen:
case class Person(name: String, age: String)
implicit val personReads: Reads[Email] = (
(__ \\ "name").read[String]) and
(__ \\ "age").read[Int](Person)
aber thr ows eine Ausnahme Execution exception[[JsResultException: JsResultException(errors:List((,List(ValidationError(List(error.expected.jsarray),WrappedArray())))))]]
angeblich, weil es eine Liste erwartet. So
Ich versuchte dies und fügte hinzu:
implicit val personsReads: Reads[Seq[Person]] = (__ \ "lst").read[Seq[Person]]
, die dann ein NullPointer
wirft.
Am Ende möchte ich nur eine Seq[Person]
. Kann mir jemand in die richtige Richtung zeigen, ich bin völlig verloren, was ich hier tun soll ...
Das ist großartig, viel sauberer als jedes Beispiel in der Play Framework-Dokumentation. Klappt wunderbar! – Tim