
Ein Fork von JSONPath von http://goessner.net/articles/JsonPath/
(siehe auch Lizenzen für Entwicklungsabhängigkeiten.)
Analysiere, transformiere und extrahiere selektiv Daten aus JSON-Dokumenten (und JavaScript-Objekten).
jsonpath-plus erweitert die ursprüngliche Spezifikation um einige zusätzliche Operatoren und macht einige Verhaltensweisen explizit, die das Original nicht ausdrücklich festgelegt hat.
Probiere die Browser-Demo oder Runkit (Node) aus.
Bitte beachte: Dieses Projekt wird derzeit nicht aktiv gepflegt. Wir akzeptieren möglicherweise gut dokumentierte PRs oder einige einfache Aktualisierungen, sind aber nicht bestrebt, selbst Fehlerbehebungen vorzunehmen oder neue Funktionen hinzuzufügen.
^ zum Erfassen des Elternelements eines übereinstimmenden Elements~ zum Erfassen von Eigenschaftsnamen übereinstimmender Elemente (als Array)@null(), @boolean(), @number(), @string(), @array(), @object()@integer()@scalar() (der auch undefined und nicht-finite Zahlen akzeptiert, wenn JavaScript-Objekte abgefragt werden, sowie alle grundlegenden Nicht-Objekt-/Nicht-Funktions-Typen)@other(), verwendbar in Verbindung mit einem benutzerdefinierten otherTypeCallback@undefined(), @function(), @nonFinite())@path/@parent/@property/@parentProperty/@root Kurzselektoren innerhalb von Filtern` zum Escapen der verbleibenden Sequenz@['...']/?@['...']-Syntax zum Escapen von Sonderzeichen innerhalb von Eigenschaftsnamen in Filtern$.. (Abrufen aller übergeordneten Komponenten)jsonpath-plus ist im Vergleich zu anderen JSON-Abfragebibliotheken laut json-querying-performance-testing sowohl bei großen als auch bei kleinen Datensätzen durchgängig leistungsfähig. Du kannst diese Ergebnisse überprüfen, indem du das Projekt selbst ausführst und weitere Performance-Fälle hinzufügst.
npm install jsonpath-plus
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
Für die Nutzung im Browser kannst du direkt dist/index-browser-umd.cjs einbinden; es ist keine
Browserify-Magie notwendig:
<script src="node_modules/jsonpath-plus/dist/index-browser-umd.cjs"></script>
<script>
const result = JSONPath.JSONPath({path: '...', json: {}});
</script>
Sie können auch ES6-Modul-Importe verwenden (für moderne Browser):
<script type="module">
import {
JSONPath
} from './node_modules/jsonpath-plus/dist/index-browser-esm.js';
const result = JSONPath({path: '...', json: {}});
</script>
Oder wenn Sie Ihr JavaScript bündeln (z. B. mit Rollup), verwenden Sie einfach
Folgendes, wobei zu beachten ist, dass mainFields
browser für Browser-Builds enthalten sollte (für Node sollte der Standard,
der module prüft, in Ordnung sein):
import {JSONPath} from 'jsonpath-plus';
const result = JSONPath({path: '...', json});
Die vollständige verfügbare Signatur ist:
const result = JSONPath([options,] path, json, callback, otherTypeCallback);
Die Argumente path, json, callback und otherTypeCallback
können alternativ (zusammen mit allen anderen der
verfügbaren Eigenschaften) in options angegeben werden.
Beachten Sie, dass result alle gefundenen Elemente enthält (optional
in ein Array verpackt), während callback verwendet werden kann, wenn Sie
eine Operation ausführen möchten, sobald jedes Element entdeckt wird, wobei
die Callback-Funktion 0 bis N Mal ausgeführt wird, abhängig
von der Anzahl der unabhängigen Elemente, die im Ergebnis gefunden werden.
Weitere Informationen zu den verfügbaren Argumenten von JSONPath finden Sie in der Dokumentation unten.
Siehe auch die API-Dokumentation.
Die Eigenschaften, die im Optionsobjekt oder in der evaluate-Methode (als erstes Argument) angegeben werden können, umfassen: