# JsonGet - Skript- und Diagrammfunktion

JsonGet() gibt den Pfad eines JSON-Datenstrings (JavaScript Object Notation) zurück. Die Daten müssen gültiges JSON sein, können aber weitere Leerzeichen oder neue Zeilen enthalten.

Syntax:

value JsonGet(json, path)

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| json | String mit JSON-Daten |
| path | Der Pfad muss gemäß [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) angegeben werden. Dies ermöglicht ein Lookup von Eigenschaften innerhalb von JSON-Daten, ohne komplexe Substrings oder Indexfunktionen zu verwenden. |

Beispiel: Gültige und ungültige Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '' )` | Liefert `{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a' )` | Liefert `{"xyz":"XYZ"}` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a/xyz' )` | Liefert `"XYZ"` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b' )` | Liefert `[123,"abc","ABC"]` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/0' )` | Liefert `123` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/1' )` | Liefert `abc` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/2' )` | Liefert `ABC` |
| `JsonGet( '{"a":"b"}','/b' )` | Liefert `null`. Der Pfad zeigt nicht auf einen gültigen Teil der JSON-Daten. |
| `JsonGet( '{"a"}','/a' )` | Liefert `null`. Die JSON-Daten sind kein gültiges JSON (Element `"a"` hat keinen Wert). |

## Beispiel – Grundlegendes zu „JsonGet“

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)

#### Diagrammformel

Übersicht

Sie erhalten JSON-Daten mit Bestelldetails als Textstring in einer einzigen Zeile. Sie möchten die folgenden Informationen abrufen:

* Preis des Artikels und Überprüfung, ob der Wert eine Zahl ist

* Kunden-E-Mail-Adresse

* Gesamtpreis (Preis \* Menge)

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Ein Feld in der Datentabelle heißt `OrderDetails`.

Ladeskript

```
Example:
Load  *
INLINE [OrderDetails
'{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 }'
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* `OrderDetails`

Erstellen Sie die folgenden Kennzahlen:

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, kombiniert mit der Funktion `IsJson`, ruft den JSON-Text für den Schlüssel `price` ab und prüft, ob der Wert von `price` eine Zahl ist.

* `JsonGet( OrderDetails, '/customer/email' )`, um die E-Mail-Adresse des Kunden unter Verwendung des richtigen Pfads abzurufen.

* `JsonGet( OrderDetails, '/total_price' ), )`, um den Gesamtpreis über den richtigen Pfad abzurufen.

Ergebnistabelle

| OrderDetails | IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' ) | JsonGet( OrderDetails, '/customer/email' ) | JsonGet( OrderDetails, '/total\_price' ), ) |
| --- | --- | --- | --- |
| { "order\_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total\_price": 2400 } | -1 (true) | john.doe@example.com | 2400 |

Die erste Kennzahl gibt `-1 true` zurück, weil der Schlüssel `price` den Wert `1200` hat, der eine Zahl ist.

Die zweite Kennzahl gibt die E-Mail-Adresse des Kunden (`john.doe@example.com`) von `OrderDetails` unter Verwendung des korrekten Pfads zum Schlüssel `email` im JSON-String zurück.

Die dritte Kennzahl gibt `2400` zurück. Dabei handelt es sich um den Gesamtpreis der Bestellung aus dem Feld `OrderDetails`, wobei der korrekte Pfad zum Schlüssel `total_price` im JSON-String verwendet wird.

Siehe auch:

* [IsJson - Skript- und Diagrammfunktion](https://help.qlik.com/de-DE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonSet - Skript- und Diagrammfunktion](https://help.qlik.com/de-DE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)