# IsJson — funkcja skryptu i funkcja wykresu

IsJson() sprawdza, czy określony ciąg zawiera prawidłowe dane JSON (JavaScript Object Notation). Można także sprawdzić poprawność określonego typu danych JSON.

Składnia:

value IsJson(json [, type])

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| json | Ciąg do przetestowania. Może zawierać dodatkowe spacje lub znaki nowego wiersza. |
| type | Opcjonalny argument określający typ danych JSON do przetestowania.<br><br><ul> <li> <p>'value' (domyślna)</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> |

Przykład: prawidłowe i nieprawidłowe wyrażenia wykresu

| Przykład | Wynik |
| --- | --- |
| `IsJson( 'null' )` | Zwraca wartość `-1 (true)` |
| `IsJson( '"abc"', 'value' )` | Zwraca wartość `-1 (true)` |
| `IsJson( '"abc"', 'string' )` | Zwraca wartość `-1 (true)` |
| `IsJson( 123, 'number' )` | Zwraca wartość `-1 (true)` |
| `IsJson( 'text' )` | Zwraca `0 (false)`, `'text'` nie jest prawidłową wartością JSON |
| `IsJson( '"text"', 'number' )` | Zwraca `0 (false)`, `'"text"'` nie jest prawidłową liczbą JSON |
| `IsJson( '"text"', 'text' )` | Zwraca `  0 (false) `, `'text'` nie jest prawidłowym typem JSON |

## Przykład — podstawy IsJson

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

#### Wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Jedno pole w tabeli danych o nazwie `API_Response`.

* Pole pochodne o nazwie `ID`. To pole wykorzystuje funkcję `Rec()` do wyliczenia rekordów wejściowych.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `ID`
* `API_Response`

Utwórz następujący wymiar wyliczany:

* `=IsJson(API_Response)` do obliczenia, czy wartości w `API_Response` są poprawnym kodem JSON.

Tabela wynikowa

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

Wynik zwraca `-1`, czyli true, w przypadku tych wartości, które mają poprawną składnię JSON.

Wynik zwraca `0`, czyli false, dla następujących identyfikatorów rekordów (`3` i `5`) z nieprawidłową składnią JSON:

* `{invalid json string}` — ciąg tekstowy nie ma prawidłowej struktury JSON odpowiedzi.

* `{"id": 5, name: "David"}` — w drugiej parze klucz-wartość brakuje cudzysłowu wokół klucza `"name"`.

## Przykład — zastosowanie IsJson

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

#### Wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Jedno pole w tabeli danych o nazwie `OrderDetails`.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

* `OrderDetails`

Utwórz następujące miary:

* `IsJson( OrderDetails)` do obliczenia, czy wartości w `OrderDetails` są poprawnym kodem JSON.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, używając funkcji `JsonGet`, pobiera tekst JSON dla klucza `price` i sprawdza, czy wartość `price` jest liczbą.

Tabela wynikowa

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

Pierwsza miara zwraca `-1 (true)`, ponieważ `OrderDetails` zawiera poprawną składnię JSON.

Druga miara zwraca `-1 (true)`, ponieważ wartość klucza `price` jest prawidłową liczbą, `1200`.

Zob. także:

* [JsonGet — funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)

* [JsonSet — funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)