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

JsonGet() devuelve la ruta de una cadena de datos JSON (JavaScript Object Notation). Los datos deben ser datos JSON válidos pero pueden contener espacios extra o retornos.

Sintaxis:

value JsonGet(json, path)

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| json | Cadena que contiene datos JSON. |
| path | La ruta debe especificarse conforme a [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901). Esto permitirá la búsqueda de propiedades dentro de los datos JSON, sin utilizar complejas funciones de subcadena o de índice. |

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

| Ejemplo | Resultado |
| --- | --- |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '' )` | Devuelve `{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a' )` | Devuelve `{"xyz":"XYZ"}` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a/xyz' )` | Devuelve `"XYZ"` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b' )` | Devuelve `[123,"abc","ABC"]` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/0' )` | Devuelve `123` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/1' )` | Devuelve `abc` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/2' )` | Devuelve `ABC` |
| `JsonGet( '{"a":"b"}','/b' )` | Devuelve `null`. La ruta no apunta a una parte válida de los datos JSON. |
| `JsonGet( '{"a"}','/a' )` | Devuelve `null`. Los datos JSON no son JSON válidos (el miembro `"a"` no tiene valor). |

## Ejemplo: fundamentos de JsonGet

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

#### Expresión de gráfico

Vista general

Recibirá los datos JSON con los detalles del pedido como una cadena de texto en una sola línea. Desea recuperar la siguiente información:

* precio del artículo y validación de que el valor es un número

* dirección de correo electrónico del cliente

* precio total (precio \* cantidad)

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( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, combinado con la función `IsJson`, recupera el texto JSON de `price` y valida si el valor de `price` es un número.

* `JsonGet( OrderDetails, '/customer/email' )`, para recuperar la dirección de correo electrónico del cliente utilizando la ruta correcta.

* `JsonGet( OrderDetails, '/total_price' ), )`, para recuperar el precio total utilizando la ruta correcta.

Tabla de resultados

| OrderDetails | IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' ) | JsonGet( OrderDetails, '/customer/email' ) | JsonGet( OrderDetails, '/total\_price' ), ) |
| --- | --- | --- | --- |
| { "order\_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total\_price": 2400 } | -1 (true) | john.doe@example.com | 2400 |

La primera medida devuelve `-1 true` porque la clave de `price` tiene un valor de `1200`, que es un número.

La segunda medida devuelve la dirección de correo electrónico del cliente, `john.doe@example.com`, desde `OrderDetails` utilizando la ruta correcta a la clave `email` en la cadena JSON.

La tercera medida devuelve `2400`, que es el precio total del pedido del campo `OrderDetails`, utilizando la ruta correcta a la clave `total_price` en la cadena JSON.

Vea también:

* [IsJson Función de script y de gráfico](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.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)