# IsJson Función de script y de gráfico

IsJson() comprueba si una cadena especificada contiene datos JSON (JavaScript Object Notation) válidos. También puede validar un tipo de datos JSON específico.

Sintaxis:

value IsJson(json [, type])

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| json | Cadena para pruebas. Puede contener espacios adicionales o saltos de línea. |
| type | Argumento opcional que especifica el tipo de datos JSON que se han de probar.<br><br><ul> <li> <p>'value' (predeterminado)</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> |

Ejemplo: expresiones de gráfico válidas y no válidas

| Ejemplo | Resultado |
| --- | --- |
| `IsJson( 'null' )` | Devuelve `-1 (true)` |
| `IsJson( '"abc"', 'value' )` | Devuelve `-1 (true)` |
| `IsJson( '"abc"', 'string' )` | Devuelve `-1 (true)` |
| `IsJson( 123, 'number' )` | Devuelve `-1 (true)` |
| `IsJson( 'text' )` | Devuelve `0 (false)`, `'text'` no es un valor JSON válido |
| `IsJson( '"text"', 'number' )` | Devuelve `0 (false)`, `'"text"'` no es un número JSON válido |
| `IsJson( '"text"', 'text' )` | Devuelve `  0 (false) `, `'text'` no es un tipo JSON válido |

## Ejemplo: fundamentos de IsJson

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

#### Expresión de gráfico

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Un campo de la tabla de datos llamado `API_Response`.

* Un campo derivado llamado `ID`. Este campo utiliza la función `Rec()` para enumerar los registros de entrada.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* ` ID
                                   `
* ` API_Response
                                   `

Cree la siguiente dimensión calculada:

* `=IsJson(API_Response)`, para calcular si los valores de `API_Response` son JSON válidos.

Tabla de resultados

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

El resultado de salida devuelve `-1` o true para aquellos valores con sintaxis JSON válida.

El resultado de salida devuelve `0` o false para los siguientes registros de identificación (`3` y `5`) con JSON no válido:

* `{invalid json string}`: Ll cadena de texto no representa una estructura de respuesta JSON válida.

* `{"id": 5, name: "David"}`: al segundo par de clave-valor le faltan comillas alrededor de la clave `"name"`.

## Ejemplo: uso de IsJson

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

#### Expresión de gráfico

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Un campo de la tabla de datos llamado `OrderDetails`.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* ` OrderDetails
                                   `

Cree las siguientes medidas:

* `IsJson( OrderDetails)`, para calcular si los valores de `OrderDetails` son JSON válidos.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, utilizando la función `JsonGet`, recupera el texto JSON para la clave `price` y valida que el valor de `price` es un número.

Tabla de resultados

| 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 primera medida devuelve `-1 (true)` porque `OrderDetails` contiene una sintaxis JSON válida.

La segunda medida devuelve `-1 (true)` porque el valor de la clave `price` es un número válido, `1200`.

Vea también:

* [JsonGet Función de script y de gráfico](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)

* [JsonSet Función de script y de gráfico](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)