2017-05-31 4 views
0

Ich benutze Scala Play und versuche, einen JSON-Baum zu durchlaufen, um zu überprüfen, dass bestimmte Namen Werte bestimmte Kinder mit bestimmten Namen Werte haben. Ich habe folgendes Json in Form eines JSObject:Durch verschachtelte JSON in Scala spielen

{ "name": "user", "children": [ { "name": "$a", "children": [ { "name": "foo", "children": [ ] }, { "name": "fooBar", "children": [ { "name": "$a", "children": [ { "name": "subFoobar1", "children": [ ] }, { "name": "subFoobar2", "children": [ { "name": "TEST", "children": [ ] } ] }, { "name": "subFoobar3", "children": [ ] } ] } ] }, { "name": "bar", "children": [ { "name": "$a", "children": [ ] }, { "name": "$c", "children": [ ] }, { "name": "$b", "children": [ ] } ] }, { "name": "barFoo", "children": [ ] } ] } ] } 

Idealerweise würde ich verschachtelte verwenden für Schleifen zu durchlaufen, aber die JSObject Struktur verhindert, dass mir der Zugriff auf die zugrunde liegenden Werte, wenn Traverse versuchen. Ich habe auch versucht, das JsObject auf eine Map vom Typ [Map [String, Map [String, Any]] zu mappen, aber ich erhalte ungültige Cast-Compiler-Fehler.

Alle Tipps, wie ich den Namen Wert auf jeder Ebene durchlaufen und validieren können, würden geschätzt. Ich würde vorzugsweise die Play-JSON-Bibliothek verwenden

Antwort

0

Problem war in der Fall Klasse, die ich versuchte zu verwenden. Ich war nicht verantwortlich für die rekursive Natur meiner JSON-Struktur

case class ActorTree(name : String, children:Seq[ActorTree])