
JSONPath v10.4.1
Ein Fork von JSONPath von http://goessner.net/articles/JsonPath/
(siehe auch Lizenzen für Entwicklungsabhängigkeiten.)
JSONPath Plus
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.
Funktionen
- Konform mit der ursprünglichen jsonpath-Spezifikation
- Praktische Ergänzungen oder Erläuterungen, die in der ursprünglichen Spezifikation nicht enthalten sind:
^zum Erfassen des Elternelements eines übereinstimmenden Elements~zum Erfassen von Eigenschaftsnamen übereinstimmender Elemente (als Array)- Typselektoren zum Abrufen von:
- Grundlegenden JSON-Typen:
@null(),@boolean(),@number(),@string(),@array(),@object() @integer()- Dem zusammengesetzten Typ
@scalar()(der auchundefinedund nicht-finite Zahlen akzeptiert, wenn JavaScript-Objekte abgefragt werden, sowie alle grundlegenden Nicht-Objekt-/Nicht-Funktions-Typen) @other(), verwendbar in Verbindung mit einem benutzerdefiniertenotherTypeCallback- Nicht-JSON-Typen, die dennoch bei der Abfrage von Nicht-JSON-JavaScript-Objekten verwendet werden können (
@undefined(),@function(),@nonFinite())
- Grundlegenden JSON-Typen:
@path/@parent/@property/@parentProperty/@rootKurzselektoren innerhalb von Filtern- Escaping
`zum Escapen der verbleibenden Sequenz@['...']/?@['...']-Syntax zum Escapen von Sonderzeichen innerhalb von Eigenschaftsnamen in Filtern
- Dokumentiert
$..(Abrufen aller übergeordneten Komponenten)
- ESM- und UMD-Exportformate
- Zusätzlich zu abgefragten Werten können verschiedene Metainformationen zurückgegeben werden, einschließlich Pfaden oder Zeigern auf den Wert sowie des übergeordneten Objekts und des Namens der übergeordneten Eigenschaft (um Änderungen zu ermöglichen).
- Dienstprogramme zur Konvertierung zwischen Pfaden, Arrays und Zeigern
- Option zum Verhindern von Auswertungen, die in der ursprünglichen Spezifikation erlaubt sind, oder zum Bereitstellen einer Sandbox für ausgewertete Werte.
- Option für einen Callback zur Verarbeitung von Ergebnissen, sobald sie erhalten werden.
Benchmarking
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.
Installation
npm install jsonpath-plus
Einrichtung
Node.js
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
Browser
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>
ESM (Moderne Browser)
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>
ESM (Bundler)
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});
Verwendung
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.
Eigenschaften
Die Eigenschaften, die im Optionsobjekt oder in der evaluate-Methode (als erstes Argument) angegeben werden können, umfassen: