Aus Gründen, die mit dem Projekt, an dem ich gerade arbeite, zusammenhängt, möchte ich, dass eine gesamte Abfrage einer JSON-Datei als Zeichenfolge gespeichert wird, z. B. $.store.book[*].title
(anstatt jede Ebene des Dokuments speichern zu müssen) vorübergehend als separates Objekt).
Ich benutze derzeit JsonPath (Version 0.8.0, das war das Neueste, was ich finden konnte), was im Grunde genau das ist, wonach ich suche, aber ich bekomme die unten gezeigte Ausnahme. Ich benutze nur den Beispiel-JSON, der auf der JsonPath-Google-Codepage mit einer ihrer Beispielabfragen angegeben wurde.
Was mache ich hier falsch? Alternativ, wenn es keine Lösung gibt, gibt es Alternativen zu JsonPath in Java? Ich möchte in der Lage sein, eine ganze Abfrage als String zu übergeben, und es muss in Java sein.
Die Funktion:
%Vor%Die Ausnahme:
%Vor%Die Praxis JSON:
%Vor%Wenn Sie Maven oder Gradle verwenden, müssen Sie dies nur zu Ihrer Abhängigkeitenliste hinzufügen:
Für Maven-Projekte:
In Ihrer Datei Maven pom.xml :
%Vor%Für Gradle-Projekte:
Im Abschnitt Abhängigkeiten in Ihrer Gradle build.gradle Datei
%Vor%Es sollte funktionieren
Wenn es widersprüchliche Versionen von json-smart
gibt, wenn die ältere Version ausgewählt wird, die nicht die erwartete Klasse hat.
Wie behebt man
? Überprüfen Sie die Versionen mit mvn dependency:tree
.
Im Folgenden finden Sie net.minidev:json-smart:jar:1.1.1:compile
und com.jayway.jsonpath:json-path:jar:1.1.0:test
, die die neueste Version von json-smart
verwenden.
Schließen Sie daher die ältere Version von json-smart
aus der Abhängigkeit aus, da json-path
die neueste Version von json-smart
hat.
zB
%Vor%