Abfrage

Array-Elemente können mit eckigen Klammern ([]) abgefragt werden. Die Abfrage wird für alle Array-Elemente ausgewertet. Die Abfrage kann beliebige Felder des Elements zum Vergleich auswählen und auf alles im JSON-Dokument verweisen.

Die folgende Tabelle enthält Abfrageoperatoren. a und b können entweder eine Konstante oder ein JPath-Konstrukt sein. Basisauswahl, Abfrage, Arithmetik und Funktionen sind JPath-Konstrukte.
Tabelle 1. Abfrageoperatoren
Bediener Beschreibung
a = b Gleich
a ! = b Ungleich
a > b Größer als
a < b Kleiner als
a > = b greater than or equal
a < = b less than or equal
Nicht a Negiert das Ergebnis von a
ist vorhanden ein Prüft, ob ein als Attribut vorhanden ist

Die folgende Tabelle enthält Beispiele für Abfrageoperatoren, die auf die Array-Elemente angewendet werden können.

Tabelle 2. Abfragebeispiele
Beispiel Beschreibung Status Ausdruck Ergebnis
Gleichheit (oder Ungleichheit) Fragt ein Array nach Objekten ab, deren Attribut einem Wert entspricht. { "array": [ { "id": 1, "name": "Object 1" }, { "id": 2, "name": "Object 2" }, { "id": 3, "name": "Object 3" } ] } /array[@id = 2] [ { "id": 2, "name": "Object 2" } ]
Größer als Fragt ein Array von Objekten ab, deren Attribute größer als ein Wert sind. { "array": [ { "id": 1, "name": "Object 1" }, { "id": 2, "name": "Object 2" }, { "id": 3, "name": "Object 3" } ] } /array[@id > 1] [ { "id": 2, "name": "Object 2" }, { "id": 3, "name": "Object 3" } ]
Basiselemente Wählt Basiselemente aus einem Array aus, das eine bestimmte Abfrage übergibt. { "array": [ "value 1", "value 2", "value 3" ] } /array[@ != "value 2"] [ "value 1", "value 3" ]
Und Wählt mit dem Operator 'and' aus. { "array": [ "value 1", "value 2", "value 3" ] } /array[@ != "value 2" and @ != 'value 3'] [ "value 1" ]
Oder Wählt mit dem Operator 'or' aus { "array": [ "value 1", "value 2", "value 3" ] } /array[@ = "value 2" or @ = "value 3"] [ "value 2", "value 3" ]
Runde Klammern Wählt mit runden Klammern aus { "array": [ "value 1", "value 2", "value 3" ] } /array[not (@ = "value 2" or @ = "value 3")] [ "value 1" ]
Vorhanden Wählt Objekte eines Arrays aus, die ein bestimmtes Attribut haben. { "array": [ { "id": 1, "name": "Object 1" }, { "id": 2, "name": "Object 2" }, { "id": 3, } ] } /array[exists @name] [ { "id": 1, "name": "Object 1" }, { "id": 2, "name": "Object 2" } ]