# IsJson Skript- und Diagrammfunktion

IsJson() testet, ob ein angegebener String gültige JSON-Daten (JavaScript Object Notation) enthält. Sie können auch einen spezifischen JSON-Datentyp validieren.

Syntax:

value IsJson(json [, type])

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| json | Zu testender String. Er kann zusätzliche Leerzeichen oder Zeilenumbrüche enthalten. |
| type | Optionales Argument, das den zu testenden JSON-Datentyp angibt.<br><br><ul> <li> <p>'value' (Standard)</p> </li> <li> <p>'object'</p> </li> <li> <p>'array'</p> </li> <li> <p>'String'</p> </li> <li> <p>'number'</p> </li> <li> <p>'Boolean'</p> </li> <li> <p>'null' </p> </li> </ul> |

Beispiel: Gültige und ungültige Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `IsJson( 'null' )` | Liefert `-1 (true)` |
| `IsJson( '"abc"', 'value' )` | Liefert `-1 (true)` |
| `IsJson( '"abc"', 'string' )` | Liefert `-1 (true)` |
| `IsJson( 123, 'number' )` | Liefert `-1 (true)` |
| `IsJson( 'text' )` | Gibt `0 (false)` zurück, `'text'` ist kein gültiger JSON-Wert |
| `IsJson( '"text"', 'number' )` | Gibt `0 (false)` zurück, `'"text"'` ist keine gültige JSON-Zahl |
| `IsJson( '"text"', 'text' )` | Gibt `  0 (false) ` zurück, `'text'` ist kein gültiger JSON-Typ |

## Beispiel – Grundlegendes zu „IsJson“

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

#### Diagrammformel

Übersicht

Ö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 `API_Response`.

* Ein abgeleitetes Feld namens `ID`. Dieses Feld verwendet die Funktion `Rec()`, um die Eingabedatensätze aufzuzählen.

Ladeskript

```
Example:
Load
Recno() AS ID, API_Response
inline [
API_Response
'{"id": 1, "name": "Alice"}'
'{"id": 2, "name": "Bob"}'
'{invalid json string}'
'{"id": 4, "name": "Charlie"}'
'{"id": 5, name: "David"}'
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* ` ID
                                   `
* ` API_Response
                                   `

Erstellen Sie die folgende berechnete Dimension:

* `=IsJson(API_Response)`, um zu berechnen, ob die Werte in `API_Response` gültiges JSON sind.

Ergebnistabelle

| ID | API\_Response | IsJson(API\_Response) |
| --- | --- | --- |
| 1 | {"id": 1, "name": "Alice"} | -1 (true) |
| 2 | {"id": 2, "name": "Bob"} | -1 (true) |
| 3 | {invalid json string} | 0 (false) |
| 4 | {"id": 4, "name": "Charlie"} | -1 (true) |
| 5 | {"id": 5, name: "David"} | 0 (false) |

Die Ausgabe gibt `-1` bzw. true für die Werte mit gültiger JSON-Syntax zurück.

Die Ausgabe gibt `0` bzw. false für die folgenden ID-Datensätze (`3` und `5`) mit ungültigem JSON zurück:

* `{invalid json string}` – Der Textstring entspricht nicht einer gültigen JSON-Antwortstruktur.

* `{"id": 5, name: "David"}` – Beim zweiten Schlüssel-Wert-Paar fehlen die Anführungszeichen um den Schlüssel `"name"`.

## Beispiel – Szenario für „IsJson“

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

#### Diagrammformel

Übersicht

Ö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( OrderDetails)`, um zu berechnen, ob die Werte in `OrderDetails` gültiges JSON sind.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, verwendet die Funktion `JsonGet`, um den JSON-Text für den Schlüssel `price` abzurufen und zu prüfen, ob der Wert von `price` eine Zahl ist.

Ergebnistabelle

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

Die erste Kennzahl gibt `-1 (true)` zurück, da `OrderDetails` gültige JSON-Syntax enthält.

Die zweite Kennzahl gibt `-1 (true)` zurück, weil der Wert des Schlüssels `price` eine gültige Zahl ist (`1200`).

Siehe auch:

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

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