Zurück zu den Updates
New releaseAug 17, 2026

JSONPath v10.4.1

Ein Fork von JSONPath von http://goessner.net/articles/JsonPath/

Teilen

npm

testing badge coverage badge

Known Vulnerabilities

Licenses badge

Node.js CI status

(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 auch undefined und nicht-endliche Zahlen, wenn JavaScript-Objekte abgefragt werden, sowie alle grundlegenden Nicht-Objekt-/Nicht-Funktionstypen)
      • @other(), verwendbar in Verbindung mit einem benutzerdefinierten otherTypeCallback
      • Nicht-JSON-Typen, die dennoch bei der Abfrage von Nicht-JSON-JavaScript-Objekten verwendet werden können (@undefined(), @function(), @nonFinite())
    • @path/@parent/@property/@parentProperty/@root Kurzschreibselektoren 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:

Kategorien