Próbuję przetworzyć żądanie Ajax POST w Play Framework 2.1.3. Dane po to obiekt JSON i ma strukturę drzewa jak:Przeczytaj strukturę drzewa JSON w Scala Play Framework
{ id: "a", name: "myname", kids : [{ id: "a1", name : "kid1", kids: []}, {id: "a2", name: "kid2", kids: [{id: "aa1", name :"grandkid", kids: []}]}]
chciałbym gniazdo dowolnie głęboko, że „dzieci”. Klasa chciałbym mieć na uwadze to tak (ja sobie sprawy recursiveness może być problematyczne):
case class Person {
id: String,
name: String,
kids: Array[Person]
}
Format chciałbym mieć na uwadze:
implicit val personFormat:Format[Person] = Json.format[Person]
Play jest rzucanie błędy w moim formacie Napisałem:
niedopasowanie typu; znaleziono: controllers.Resources.Person required: Array [controllers.Resources.Person]
Mam świadomość, że Play ma strukturę Drzewa. Nie mogłem znaleźć przykładów/dokumentacji, jak powiązać to z odczytami JSON.
Każda pomoc jest bardzo ceniona dzięki
Dzięki Robin, próbuję włączyć twoją odpowiedź i dostaję błąd kompilacji "nie znaleziono: wartość jest ważna". Czy brakuje mi czegoś podstawowego? I czy "dzieci" w klasie "Osoba" muszą być "Sekwą [Person]", aby uzyskać odpowiedź? Dzięki! – Joost
Och, myślę, że nie deklarujesz tego w obiekcie towarzyszącym. Więc po prostu zmień 'apply' na' Person'. Możesz zmienić to na 'Array', ale nie jestem pewien, czy Play może automatycznie czytać' Array's; dlatego zasugerowałem zmianę typu kolekcji używanej w 'Person' z' Array' na 'Seq'. Przepraszam, jeśli to nie było jasne. –