2016-06-15 18 views
1

Ich habe eine JSON-Bibliothek aktualisiert und ich habe Probleme beim Extrahieren des gewünschten Werts.Get Double von JSON-Struktur

Die JSON sieht wie folgt aus:

{ 
    "k1": { 
    "k2 : { 
     "k3" : 123 
    } 
    } 
} 

Zuvor dies der Trick:

(parse(json) \\ "k1" \\ "k2" \\ "k3").extract[Double] 

der Trick, jetzt tut es nicht. Jetzt bekomme ich die Ausnahme:

org.json4s.package$MappingException: Do not know how to convert JArray(List(JInt(123))) into double 

ich mit compact(render(parse(json) \\ "k1" \\ "k2" \\ "k3")) versucht, aber das hat mir den String [123], was nicht wirklich ist, was ich will. Wie kann ich den Wert direkt als Doppel extrahieren?

Antwort

1

Verwenden von \\ Accessor ist hier falsch, wie es rekursiv JSON geht und alle "k1" es Begegnungen extrahiert, wodurch eine JArray, also der Fehler.

Sie sollten entweder \ verwenden, die nur auf einen direkt verschachtelten Schlüssel des JSON-Objekts zugreift, oder extract[List[Double]] aus Ihrem Code.