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.
| 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.
| 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" } ] |