# IsJson - Script- en diagramfunctie

IsJson() controleert of een opgegeven string geldige JSON-gegevens (JavaScript Object Notation) bevat. U kunt ook een specifiek JSON-gegevenstype valideren.

Syntaxis:

value IsJson(json [, type])

Retourgegevenstypen: dubbele waarde

Argumenten

| Argument | Beschrijving |
| --- | --- |
| json | Tekenreeks om te testen. Deze kan extra spaties of nieuwe regels bevatten. |
| type | Optioneel argument dat het JSON-gegevenstype aangeeft dat getest moet worden.<br><br><ul> <li> <p>'value' (default)</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> |

Voorbeeld: geldige en ongeldige diagramuitdrukkingen

| Voorbeeld | Resultaat |
| --- | --- |
| `IsJson( 'null' )` | Retourneert `-1 (true)` |
| `IsJson( '"abc"', 'value' )` | Retourneert `-1 (true)` |
| `IsJson( '"abc"', 'string' )` | Retourneert `-1 (true)` |
| `IsJson( 123, 'number' )` | Retourneert `-1 (true)` |
| `IsJson( 'text' )` | Retourneert `0 (false)`, `'text'` is geen geldige JSON-waarde |
| `IsJson( '"text"', 'number' )` | Retourneert `0 (false)`, `'"text"'` is geen geldig JSON-getal |
| `IsJson( '"text"', 'text' )` | Retourneert `  0 (false) `, `'text'` is geen geldig JSON-type |

## Voorbeeld - Basisprincipes voor IsJson

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

#### Diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* Eén veld in de gegevenstabel met de naam `API_Response`.

* Een afgeleid veld genaamd `ID`. Dit veld gebruikt de functie `Rec()` om de invoerrecords op te sommen.

Load-script

```
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"}'
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `ID`
* `API_Response`

Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:

* `=IsJson(API_Response)` om te berekenen of de waarden in `API_Response` geldige JSON zijn.

Resultatentabel

| 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) |

De uitvoer retourneert `-1`, of true, voor die waarden met een geldige JSON-syntaxis.

De uitvoer retourneert `0`, of false, voor de volgende id-records (`3` en `5`) met ongeldige JSON:

* `{invalid json string}` —De teksttekenreeks vertegenwoordigt geen geldige JSON-antwoordstructuur.

* `{"id": 5, name: "David"}` —Het tweede sleutelwaardepaar mist aanhalingstekens rond de sleutel `"name"`.

## Voorbeeld – IsJson scenario

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

#### Diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* Eén veld in de gegevenstabel met de naam `OrderDetails`.

Load-script

```
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 }'
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* `OrderDetails`

Maak de volgende metingen:

* `IsJson( OrderDetails)` om te berekenen of de waarden in `OrderDetails` geldige JSON zijn.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, met behulp van de functie `JsonGet` haalt de JSON-tekst voor de `price` sleutel op en valideert dat de waarde van `price` een getal is.

Resultatentabel

| 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) |

De eerste meting retourneert `-1 (true)` omdat `OrderDetails` een geldige JSON-syntaxis bevat.

De tweede meting retourneert `-1 (true)` omdat de waarde van de sleutel `price` een geldig getal is, `1200`.

Zie ook:

* [JsonGet - Script- en diagramfunctie](https://help.qlik.com/nl-NL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)

* [JsonSet - Script- en diagramfunctie](https://help.qlik.com/nl-NL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)