Grundlegende Verwendung von JSONPath in Java
Habe ich JSON als string und ein JSONPath als string. Ich möchte eine Abfrage des JSON mit der JSON-Pfad, die resultierenden JSON als string.
Entnehme ich, dass Jayway ' s json-Pfad ist das standard. Die online-API, jedoch, hat nicht viel Bezug zu den eigentliche Bibliothek erhalten Sie von Maven. GrepCode version grob passt aber.
Es scheint, wie ich sollte in der Lage sein zu tun:
String originalJson; //these are initialized to actual data
String jsonPath;
String queriedJson = JsonPath.<String>read(originalJson, jsonPath);
Das problem ist, dass read
gibt, was es fühlt sich am besten geeignete Basis, was die JSONPath findet tatsächlich (z.B. ein List<Object>
, String
, double
usw.), also mein code löst eine Ausnahme für bestimmte Abfragen. Es scheint ziemlich vernünftig anzunehmen, dass es gäbe einige Möglichkeit zum Abfragen von JSON und erhalten JSON zurück; irgendwelche Vorschläge?
Ich habe es grob passt das GrepCode version. (Ich habe versucht zu machen es einfach für Menschen, Blick in die API ohne Download die Bibliothek, wo immer Sie sind) Insgesamt ist die Bibliothek hat ziemlich schlechte Dokumentation, aber was ich versuche zu tun, scheint so grundlegend, dass ich würde davon ausgehen, es muss möglich sein.
Aus der aktuellen GrepCode version scheint es, dass die Filter, die angewendet werden, zum Parsen der JSON und zurück was auch immer angemessen ist. Wenn Sie möchten, JSON zurück, vielleicht könnten Sie Ihre eigenen filter(s), irgendwie verwenden Sie das Konfigurations-oder vielleicht einfach das Ergebnis, und konvertieren es zurück zu JSON unter Verwendung der gleichen JsonProvider, dass JSONPath konfiguriert ist, d.h. so etwas wie
String json = provider.toJson(jsonPath.read(...))
InformationsquelleAutor akroy | 2014-06-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dort auf jeden Fall besteht eine Möglichkeit zum Abfragen von Json und erhalten Json zurück mit JsonPath.
Siehe Beispiel unten:
Die Ausgabe des obigen inneren Json.
Nun jeder einzelne name/Wert-Paaren analysiert werden kann durch Durchlaufen der Liste (JsonNode) bekamen wir oben.
Ist die Ausgabe:
Je nach Json-Sie versuchen zu analysieren, können Sie entscheiden, ob Sie zum abrufen einer Liste oder nur einen einzigen String/Long-Wert.
Hoffe, es hilft Ihr problem zu lösen.
Ich versuche auch, mir gleich, aber nicht gefunden, diese Methode
kann nicht finden, auch. Hast du die version?
InformationsquelleAutor Ankur Choudhary
Java JsonPath API gefunden bei jayway JsonPath vielleicht ein wenig geändert, da alle oben genannten Antworten/Kommentare. Dokumentation zu. Folgen Sie einfach den oben genannten link und Lesen, dass Die README-Datei.md, es enthält einige sehr klare Syntax-Dokumentation IMO.
Im Grunde, als der aktuelle Letzte version 2.2.0 der Bibliothek, es gibt ein paar verschiedene Möglichkeiten, zu erreichen, was gefordert wurde hier, wie:
- Und für Referenz, ruft 'JsonPath.parse(..)' Rückgabe ein Objekt der Klasse ' JsonContent " Umsetzung einige Schnittstellen, wie 'ReadContext', welche enthält mehrere unterschiedliche 'read(..)' Vorgänge, wie die oben gezeigt:
Hoffe, das jemand hilft.
InformationsquelleAutor francois
Check-out die jpath API. Es ist xpath äquivalent für JSON-Daten. Sie können Daten Lesen, indem Sie die jpath die traverse die JSON-Daten und die Rückgabe der angeforderten Wert.
Dieser Java-Klasse ist die Implementierung wie auch Beispiel-codes, wie Sie zum aufrufen der APIs.
https://github.com/satyapaul/jpath/blob/master/JSONDataReader.java
Readme -
https://github.com/satyapaul/jpath/blob/master/README.md
Zusätzliche info. Ich dachte, der code war eigentlich ganz einfach und selbsterklärend. Darüber hinaus werden die readme Erläuterung und wenige Beispiele, wie gut. Ich war die Vermeidung der Duplizierung diese Inhalte. Trotzdem Vielen Dank!
InformationsquelleAutor Satyajit Paul
Für diejenigen von Euch Fragen, warum einige von diesen Jahren-alte Antworten nicht funktionieren, können Sie lernen viel von der Testfälle.
Ab September 2018, hier ist, wie können Sie erhalten Jackson JsonNode Ergebnisse:
InformationsquelleAutor Hoobajoob