
JSONPath v10.4.1
Ein Fork von JSONPath von http://goessner.net/articles/JsonPath/
(siehe auch Lizenzen für dev. Abhängigkeiten)
JSONPath Plus
Analysieren, transformieren und selektiv Daten aus JSON-Dokumenten (und JavaScript-Objekten) extrahieren.
jsonpath-plus erweitert die ursprüngliche Spezifikation um einige
zusätzliche Operatoren und macht einige Verhaltensweisen explizit, die
die ursprüngliche Spezifikation nicht klar definiert hat.
Probieren Sie die Browser-Demo oder Runkit (Node).
Bitte beachten: Dieses Projekt wird derzeit nicht aktiv gepflegt. Wir akzeptieren möglicherweise gut dokumentierte PRs oder einige einfache Updates, beabsichtigen jedoch nicht, selbst Fehlerbehebungen vorzunehmen oder neue Funktionen hinzuzufügen.
Features
- Konform mit der ursprünglichen jsonpath-Spezifikation
- Praktische Ergänzungen oder Ausführungen, die in der ursprünglichen Spezifikation nicht enthalten sind:
^zum Abrufen des übergeordneten Elements eines übereinstimmenden Objekts~zum Abrufen von Eigenschaftsnamen übereinstimmender Objekte (als Array)- Typselektoren zum Erhalten von:
- Basistypen von JSON:
@null(),@boolean(),@number(),@string(),@array(),@object() @integer()- Der zusammengesetzte Typ
@scalar()(akzeptiert auchundefinedund nicht-endliche Zahlen, wenn JavaScript-Objekte abgefragt werden, sowie alle grundlegenden Nicht-Objekt-/Nicht-Funktionstypen) @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())
- Basistypen von JSON:
@path/@parent/@property/@parentProperty/@rootKurzschreibselektoren innerhalb von Filtern- Escaping
`zum Escapen der restlichen Sequenz@['...']/?@['...']-Syntax zum Escapen von Sonderzeichen innerhalb von Eigenschaftsnamen in Filtern
- Dokumentiert
$..(Abrufen aller übergeordneten Komponenten)
- ESM- und UMD-Exportformate
- Zusätzlich zu den abgefragten Werten können verschiedene Metainformationen zurückgegeben werden, einschließlich Pfaden oder Zeigern auf den Wert sowie des übergeordneten Objekts und des übergeordneten Eigenschaftsnamens (um Änderungen zu ermöglichen).
- Hilfsprogramme zur Konvertierung zwischen Pfaden, Arrays und Zeigern
- Option zum Verhindern von Auswertungen, die in der ursprünglichen Spezifikation erlaubt sind, oder zur Bereitstellung einer Sandbox für ausgewertete Werte.
- Option für einen Rückruf zur Verarbeitung der Ergebnisse, sobald sie erhalten werden.
Benchmarking
jsonpath-plus ist bei großen und kleinen Datensätzen im Vergleich zu anderen JSON-Abfragebibliotheken durchweg leistungsfähig, gemäß json-querying-performance-testing. Sie können diese Ergebnisse überprüfen, indem Sie das Projekt selbst ausführen und weitere Leistungstests hinzufügen.
Installieren```shell
npm install jsonpath-plus
## Einrichtung
### Node.js```js
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
Browser
Für die Verwendung im Browser können Sie dist/index-browser-umd.cjs direkt einbinden; keine
Browserify-Magie ist erforderlich:```html
### ESM (Moderne Browser)
Sie können auch ES6-Modulimporte verwenden (für moderne Browser):```html
<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 du dein JavaScript bündelst (z. B. mit Rollup), verwende einfach,
wobei zu beachten ist, dass mainFields
für Browser-Builds browser enthalten sollte (für Node sollte die Standardeinstellung, die
module prüft, in Ordnung sein):```js
import {JSONPath} from 'jsonpath-plus';
const result = JSONPath({path: '...', json});
## Verwendung
Die vollständige verfügbare Signatur lautet:```
const result = JSONPath([options,] path, json, callback, otherTypeCallback);
Die Argumente path, json, callback und otherTypeCallback
können alternativ (zusammen mit allen anderen verfügbaren
Eigenschaften) auch auf options angegeben werden.
Beachten Sie, dass result alle gefundenen Elemente enthält (optional
in ein Array gewickelt), während callback verwendet werden kann, wenn
Sie eine Operation ausführen möchten, sobald jedes Element gefunden 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 folgenden Dokumentation.
Siehe auch die API-Dokumentation.
Eigenschaften
Die Eigenschaften, die auf dem Optionsobjekt oder in der
evaluate-Methode (als erstes Argument) angegeben werden können, umfassen: