# IsJson – Skript- och diagramfunktion

IsJson() testar om en angiven sträng innehåller giltiga JSON-data (JavaScript Object Notation). Du kan även validera en specifik JSON-datatyp.

Syntax:

value IsJson(json [, type])

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| json | Sträng att testa. Det kan innehålla extra mellanslag eller nyrader. |
| type | Valfritt argument som anger vilken JSON-datatyp som ska testas.<br><br><ul> <li> <p>'value' (standard)</p> </li> <li> <p>'objekt'</p> </li> <li> <p>'object'</p> </li> <li> <p>'sträng'</p> </li> <li> <p>'number'</p> </li> <li> <p>"Boolean"</p> </li> <li> <p>'null' </p> </li> </ul> |

Exempel: giltiga och ogiltiga diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `IsJson( 'null' )` | Returnerar `-1 (true)` |
| `IsJson( '"abc"', 'value' )` | Returnerar `-1 (true)` |
| `IsJson( '"abc"', 'string' )` | Returnerar `-1 (true)` |
| `IsJson( 123, 'number' )` | Returnerar `-1 (true)` |
| `IsJson( 'text' )` | Returnerar `0 (false)`, `'text'` är inte ett giltigt JSON-värde |
| `IsJson( '"text"', 'number' )` | Returnerar `0 (false)`, `'"text"'` är inte ett giltigt JSON-tal |
| `IsJson( '"text"', 'text' )` | Returnerar `  0 (false) `, `'text'` är inte en giltig JSON-typ |

## Exempel – grunderna i IsJson

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

#### Diagramuttryck

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Ett fält i datatabellen heter `API_Response`.

* Ett härlett fält som heter `ID`. I detta fält används funktionen `Rec()` för att räkna upp de ingående posterna.

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `ID`
* `API_Response`

Skapa följande beräknade dimension:

* `=IsJson(API_Response)`, för att beräkna om värdena i `API_Response` är giltiga JSON.

Resultattabell

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

Utmatningen returnerar `-1`, eller true, för de värden som har giltig JSON-syntax.

Utmatningen returnerar `0`, eller false, för följande ID-poster (`3` och `5`) med ogiltig JSON:

* `{invalid json string}` – Textsträngen representerar inte en giltig JSON-svarsstruktur.

* `{"id": 5, name: "David"}` – Det andra nyckel-värdeparet saknar citattecken runt nyckeln `"name"`.

## Exempel – IsJson-scenario

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

#### Diagramuttryck

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Ett fält i datatabellen heter `OrderDetails`.

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

* `OrderDetails`

Skapa följande mått:

* `IsJson( OrderDetails)`, för att beräkna om värdena i `OrderDetails` är giltiga JSON.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )` med hjälp av funktionen `JsonGet` hämtas JSON-texten för nyckeln `price` och det kontrolleras att värdet för `price` är ett tal.

Resultattabell

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

Den första åtgärden returnerar `-1 (true)` eftersom `OrderDetails` innehåller giltig JSON-syntax.

Den andra åtgärden returnerar `-1 (true)` eftersom värdet på `price`-nyckeln är ett giltigt tal, `1200`.

Se även:

* [JsonGet – Skript- och diagramfunktion](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)

* [JsonSet – Skript- och diagramfunktion](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)