jsonPath
jsonpath implementiert Unterstützung für die SQL/JSON-Pfadsprache in PostgreSQL zur Abfrage von JSON-Daten. Sie liefert eine binäre Darstellung des geparsten SQL/JSON-Pfadausdrucks, der die Elemente angibt, die von der Pfad-Engine aus den JSON-Daten zur weiteren Verarbeitung mit den SQL/JSON-Abfragefunktionen abgerufen werden sollen. Die Semantik von SQL/JSON-Pfadprädikaten und -Operatoren folgt im Allgemeinen SQL. Die SQL/JSON-Pfadsyntax verwendet einige der JavaScript:- Ein Punkt (
.) wird für den Zugang zu den Mitgliedern verwendet. - Eckige Klammern (
[]) werden für den Zugriff auf das Feld verwendet. - SQL/JSON-Arrays sind 0-relativ (im Gegensatz zu normalen SQL-Arrays, die bei 1 beginnen).
- Sie müssen von doppelten Anführungszeichen umgeben sein.
- Backslash-Escapes können darin verwendet werden, um sonst schwer zu tippende Zeichen darzustellen.
\" eingeben. Um einen Backslash zu erhalten, müssen Sie ' \\ eingeben.- Für verschiedene ASCII-Steuerzeichen
\b\f\n\r\t\v
- Für ein Unicode-Zeichen, das durch seinen 4-hex-stelligen Codepunkt identifiziert wird
\uNNNN
- Für einen Zeichencode, der mit nur zwei Hexadezimalziffern geschrieben wird
\xNN
- Für einen mit 1 bis 6 Hexadezimalziffern geschriebenen Zeichencode
\u{N...}
- Pfadliterale der primitiven JSON-Typen: Unicode-Text, numerisch, true, false oder null.
- Pfadvariablen.
- Accessor-Operatoren.
jsonpathund -Methoden, die Sie verwenden können, um Filterausdrücke bereitzustellen oder die Reihenfolge der Pfadauswertung festzulegen.
jsonpath-Variablen
- $
- Eine Variable, die den abzufragenden JSON-Text (das Kontextelement) darstellt.
- $varname
- Eine benannte Variable. Sie können den Wert über den Parameter "
varsverschiedener JSON-Verarbeitungsfunktionen festlegen. - @
- Eine Variable, die das Ergebnis der Pfadauswertung in Filterausdrücken darstellt.
jsonpath-Zugriffspunkte
- .key
- ."$varname"
- Ein Member-Accessor, der ein Objektmember mit dem angegebenen Schlüssel zurückgibt. Wenn der Schlüsselname eine benannte Variable ist, die mit $ beginnt oder nicht den JavaScript eines Bezeichners entspricht, muss er als Zeichenfolgenliteral in Anführungszeichen gesetzt werden.
- .*
- Ein Platzhalter für Mitglieder, der die Werte aller Mitglieder auf der obersten Ebene des aktuellen Objekts zurückgibt.
- .**
- Ein rekursiver Wildcard-Member-Accessor, der alle Ebenen der JSON-Hierarchie des aktuellen Objekts verarbeitet und alle Member-Werte zurückgibt, unabhängig von ihrer Verschachtelungsebene. Dies ist eine PostgreSQL des SQL/JSON-Standards.
- .**{level}
- .**{start_level to end_level}
- Dasselbe wie .**, aber mit einem Filter über die Verschachtelungsebenen der JSON-Hierarchie. Verschachtelungsebenen werden als ganze Zahlen angegeben. Die Nullebene entspricht dem aktuellen Objekt. Um auf die unterste Schachtelungsebene zuzugreifen, können Sie das Schlüsselwort last verwenden. Dies ist eine PostgreSQL des SQL/JSON-Standards.
- [tiefgestellt, ...]
- Ein Array-Element-Accessor.
subscriptkann in zwei Formen angegeben werden: "indexoder "start_indexbis "end_index. Die erste Form gibt ein einzelnes Array-Element nach seinem Index zurück. Die zweite Form gibt ein Array-Slice durch den Bereich der Indizes zurück, einschließlich der Elemente, die den angegebenen "start_indexund "end_indexentsprechen. - [*]
- Ein Wildcard-Array-Element-Accessor, der alle Array-Elemente zurückgibt.
Die SQL/JSON-Pfadsprache
Ähnlich wie die ' XPath -Ausdrücke, die für den ' SQL auf XML verwendet werden, geben die ' SQL/JSON -Pfadausdrücke an, welche Elemente aus den ' JSON -Daten abgerufen werden sollen.
In PostgreSQL, sind Pfadausdrücke als der Datentyp ' jsonpath implementiert. Sie können alle in jsonpath beschriebenen Elemente verwenden.
JSON -Abfragefunktionen und -Operatoren übergeben den angegebenen Pfadausdruck zur Auswertung an das Pfadmodul. Wenn der Ausdruck mit den abgefragten JSON-Daten übereinstimmt, wird das entsprechende SQL/JSON-Element zurückgegeben.
Pfadausdrücke werden in der SQL/JSON-Pfadsprache geschrieben. Sie können arithmetische Ausdrücke und Funktionen enthalten. Der angegebene Ausdruck muss in einfache Anführungszeichen gesetzt werden, da Abfragefunktionen einen solchen Ausdruck als Textstring behandeln.
Ein Pfadausdruck besteht aus einer Folge von Elementen, die durch " jsonpath zugelassen sind. Der Pfadausdruck wird von links nach rechts ausgewertet. Sie können Klammern verwenden, um die Reihenfolge der Operationen zu ändern. Wenn die Auswertung erfolgreich ist, wird eine SQL/JSON-Sequenz erzeugt. Das Auswertungsergebnis wird an die JSON-Abfragefunktion zurückgegeben, die die angegebene Berechnung abschließt.
Um auf das Kontextelement (abzufragende JSON-Daten) zu verweisen, können Sie das Zeichen " $ im Pfadausdruck verwenden. Sie können dem Zeichen einen oder mehrere jsonpath-Accessors folgen lassen. Sie gehen in der JSON-Struktur Ebene für Ebene nach unten, um den Inhalt des Kontextelements abzurufen. Jeder nachfolgende Operator befasst sich mit dem Ergebnis des vorangegangenen Auswertungsschritts.
Weitere Informationen über die ' jsonpath und -Methoden finden Sie unter jsonpath