Wie verwenden von C# - Beispiel für die Verwendung JsonPath?
Ich versuche, JsonPath .NET (http://code.google.com/p/jsonpath/downloads/list) und ich habe Probleme bei der Suche ein Beispiel zum Parsen der Json-Zeichenfolge und eine JsonPath string und ein Ergebnis bekommen.
Hat jemand diese verwendet?
Dürfte ich vorschlagen Json.NET als alternative JSON-parser (james.newtonking.com/pages/json-net.aspx)
Gibt es eine Funktion ähnlich wie JsonPath?
Etwas ähnlich zu XPath? Es funktioniert. Überprüfen Sie heraus die SelectToken Funktionalität JSON.NET. Sie können einen string-Ausdruck, JSON. Zum Beispiel: stackoverflow.com/questions/1698175/...
Nur als follow-up, Seekuh.Json-Implementierung von JsonPath ist jetzt verfügbar auf Nuget.
Für weitere Leser - Json.NET voll unterstützt JsonPath über SelectToken james.newtonking.com/archive/2014/02/01/...
Gibt es eine Funktion ähnlich wie JsonPath?
Etwas ähnlich zu XPath? Es funktioniert. Überprüfen Sie heraus die SelectToken Funktionalität JSON.NET. Sie können einen string-Ausdruck, JSON. Zum Beispiel: stackoverflow.com/questions/1698175/...
Nur als follow-up, Seekuh.Json-Implementierung von JsonPath ist jetzt verfügbar auf Nuget.
Für weitere Leser - Json.NET voll unterstützt JsonPath über SelectToken james.newtonking.com/archive/2014/02/01/...
InformationsquelleAutor Niels Bosma | 2011-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass die C# - version von JsonPath nicht enthalten, einen Json-parser, so dass Sie haben, um es mit einem anderen Json-framework übernimmt die Serialisierung und Deserialisierung.
Den Weg JsonPath funktioniert, ist die Verwendung einer Schnittstelle namens
IJsonPathValueSystem
zu durchqueren geparsten Json-Objekte. JsonPath kommt mit einem built-inBasicValueSystem
verwendet, dieIDictionary
- Schnittstelle zum darstellen von Json-Objekten und dieIList
- Schnittstelle zum darstellen von Json-arrays.Können Sie erstellen Sie Ihre eigenen
BasicValueSystem
-kompatibel Json-Objekte, indem er Sie mit C# - auflistungsinitialisierer aber das ist nicht viel, wenn Ihr Json kommt in form von Zeichenfolgen von einem remote-server, zum Beispiel.Also, wenn nur Sie konnten sich einen Json-string und parse es in einer verschachtelten Struktur von
IDictionary
ObjekteIList
arrays und primitive Werte, können Sie anschließend verwenden, JsonPath, um es zu filtern! Wie es der Zufall wollte es, dass wir verwenden können Json.NET die gute Serialisierung und Deserialisierung Fähigkeiten zu tun, dass ein Teil des Jobs.Leider Json.NET nicht Deserialisieren Json-strings in einem format, kompatibel mit den
BasicValueSystem
. Also die erste Aufgabe, die für die Verwendung mit JsonPath Json.NET schreiben Sie eineJsonNetValueSystem
implementiertIJsonPathValueSystem
und versteht, dieJObject
ObjekteJArray
arrays undJValue
Werte, dieJObject.Parse
produziert.So laden beide JsonPath und Json.NET und setzen Sie Sie in einem C# - Projekt. Dann fügen Sie diese Klasse, Projekt:
Nun mit allen drei dieser Stücke können wir schreiben eine Probe JsonPath Programm:
erzeugt diese Ausgabe:
Dieses Beispiel basiert auf der Javascript-Beispiel auf dem JsonPath Website:
Diese Antwort beantwortet die Frage. Es gibt natürlich noch viele andere Ansätze, je nach dem problem.
Danke! Genau das, was ich brauchte. Json.Net's SelectToken haben nicht die Funktionalität, die ich brauche.
Eine schön gestaltete Antwort, danke! Genau das, was ich suchte zu.
Hi Rick, ich versuche Sie z.B. mit Ausdrücken in JsonPath und es scheint, dass, um die Unterstützung, die ich umsetzen
JsonPathScriptEvaluator
wie Sie implementiert habenIJsonPathValueSystem
. Haben Sie eine Beispiel-Implementierung für das gleiche? Ich habe auch geschrieben eine separate Frage stackoverflow.com/questions/16566359/...InformationsquelleAutor Rick Sladkey
Für diejenigen, die nicht wie LINQ (.NET 2.0):
Verwendung:
InformationsquelleAutor Stefan Steiger