# JsonGet - Fonction de script et de graphique

JsonGet() renvoie le chemin d'accès à une chaîne de données JSON (JavaScript Object Notation). Les données doivent être conformes au format JSON, mais elles peuvent contenir des espaces supplémentaires ou de nouvelles lignes.

value JsonGet(json, path)

double

Arguments

| Argument | Description |
| --- | --- |
| json | Chaîne contenant des données JSON. |
| path | Le chemin d'accès doit être spécifié conformément à [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901). Cela permettra la recherche de propriétés au sein des données JSON sans utiliser de fonctions de sous-chaîne ou d'index complexes. |

Exemple : Expressions de graphique valides et non valides

| Exemple | Résultat |
| --- | --- |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '' )` | Renvoie `{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}`. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a' )` | Renvoie `{"xyz":"XYZ"}`. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a/xyz' )` | Renvoie `"XYZ"`. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b' )` | Renvoie `[123,"abc","ABC"]`. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/0' )` | Renvoie `123`. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/1' )` | Renvoie `abc`. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/2' )` | Renvoie `ABC`. |
| `JsonGet( '{"a":"b"}','/b' )` | Renvoie `null`. Le chemin d'accès ne pointe pas vers une partie valide des données JSON. |
| `JsonGet( '{"a"}','/a' )` | Renvoie `null`. Les données JSON ne sont pas au format JSON valide (le membre `"a"` n'a pas de valeur). |

## Exemple - Les bases de JsonGet

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

#### Expression de graphique

Vue d'ensemble

Vous recevez des données JSON contenant des détails de commandes sous forme de chaîne de texte sur une seule ligne. Vous souhaitez récupérer les informations suivantes :

* prix de l'article et confirmation que la valeur est un nombre

* adresse e-mail du client

* prix total (prix \* quantité)

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champ dans la table de données portant le nom `OrderDetails`.

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `OrderDetails`

Créez les mesures suivantes :

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, combiné à la fonction `IsJson`, récupère le texte JSON de `price` et vérifie si la valeur de `price` est un nombre.

* `JsonGet( OrderDetails, '/customer/email' )` pour récupérer l'adresse e-mail du client en utilisant le chemin d'accès correct.

* `JsonGet( OrderDetails, '/total_price' ), )` pour récupérer le prix total en utilisant le chemin d'accès correct.

Tableau de résultats

| 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 première mesure renvoie `-1 true`, car la clé `price` a pour valeur `1200`, qui est un nombre.

La deuxième mesure renvoie l'adresse e-mail du client, `john.doe@example.com`, à partir de `OrderDetails` en utilisant le chemin d'accès correct à la clé `email` dans la chaîne JSON.

La troisième mesure renvoie `2400`, qui est le prix total de la commande à partir du champ `OrderDetails`, en utilisant le chemin d'accès correct à la clé `total_price` dans la chaîne JSON.

Voir aussi :

* [IsJson - Fonction de script et de graphique](https://help.qlik.com/fr-FR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonSet - Fonction de script et de graphique](https://help.qlik.com/fr-FR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)