# IsJson - Funzione per script e grafici

IsJson() verifica se una stringa specificata contiene dati JSON (JavaScript Object Notation) validi. È anche possibile convalidare un tipo specifico di dati JSON.

Sintassi:

value IsJson(json [, type])

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| json | Stringa da testare. Può contenere spazi extra o nuove righe. |
| type | Argomento opzionale che specifica il tipo di dati JSON da testare.<br><br><ul> <li> <p>'value' (predefinito)</p> </li> <li> <p>'object'</p> </li> <li> <p>'array'</p> </li> <li> <p>'stringa'</p> </li> <li> <p>'number'</p> </li> <li> <p>'Boolean'</p> </li> <li> <p>'null' </p> </li> </ul> |

Esempio: espressioni del grafico valide e non valide

| Esempio | Risultato |
| --- | --- |
| `IsJson( 'null' )` | Restituisce `-1 (true)` |
| `IsJson( '"abc"', 'value' )` | Restituisce `-1 (true)` |
| `IsJson( '"abc"', 'string' )` | Restituisce `-1 (true)` |
| `IsJson( 123, 'number' )` | Restituisce `-1 (true)` |
| `IsJson( 'text' )` | Restituisce `0 (false)`, `'text'` non è un valore JSON valido |
| `IsJson( '"text"', 'number' )` | Restituisce `0 (false)`, `'"text"'` non è un numero JSON valido |
| `IsJson( '"text"', 'text' )` | Restituisce `  0 (false) `, `'text'` non è un tipo JSON valido |

## Esempio: principi fondamentali della funzione IsJson

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

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* Un campo della tabella dati denominata `API_Response`.

* Un campo derivato denominato `ID`. Questo campo utilizza la funzione `Rec()` per enumerare i record di input.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `ID`
* `API_Response`

Creare la seguente dimensione calcolata:

* `=IsJson(API_Response)`, per calcolare se i valori in `API_Response` sono JSON validi.

Tabella dei risultati

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

L'output restituisce `-1` o true, per i valori con sintassi JSON valida.

L'output restituisce `0` o false, per i seguenti record ID (`3` e `5`) con JSON non valido:

* `{invalid json string}`: la stringa di testo non rappresenta una struttura di risposta JSON valida.

* `{"id": 5, name: "David"}`: la seconda coppia chiave-valore non ha le virgolette intorno alla chiave `"name"`.

## Esempio: scenario per l'applicazione della funzione IsJson

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

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* Un campo della tabella dati denominata `OrderDetails`.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* `OrderDetails`

Creare le seguenti misure:

* `IsJson( OrderDetails)`, per calcolare se i valori in `OrderDetails` sono JSON validi.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, che utilizza la funzione `JsonGet`, recupera il testo JSON per la chiave `price` e convalida che il valore di `price` sia un numero.

Tabella dei risultati

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

La prima misura restituisce `-1 (true)` perché `OrderDetails` contiene una sintassi JSON valida.

La seconda misura restituisce `-1 (true)` perché il valore della chiave `price` è un numero valido, `1200`.

Vedere anche:

* [JsonGet - Funzione per script e grafici](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)

* [JsonSet - Funzione per script e grafici](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)