Skip to content

$json.parse

Description

Construit un objet typé à partir d'une version sérialisée d'un objet json.

Comparaison avec les méthodes $json.load et $json.path

La méthode $json.parse construit un objet typé à partir de l'arbre json donné en entrée. À la sortie, on obtient donc un objet de type map (ou array selon la nature de l'arbre json) qui peut être réutilisé tel quel dans d'autres méthodes.

La méthode $json.load charge en mémoire un arbre json dans le but de l'intéroger au moyen d'expressions json-path (via la méthode $json.path). L'utilisation de $json.load est optionnel, mais cela permet d'accélérer le traitement dans le cas de grands arbres car cela évite de re-charger l'arbre à chaque appel de la méthode $json.path. La valeur en sortie de $json.load est donc une clé qui représente l'arbre json et qui peut être passée à $json.path pour référencer l'arbre. Un arbre chargé avec $json.load devra être libéré de la mémoire avec $json.free.

Fondamentalement, les deux variantes permettent d'extraire des valeurs d'un objet json, mais par des moyens différents. La méthode $json.parse est plutôt destinée à extraire des données dont on connaît la position par avance. La méthode $json.path quant à elle permet de le faire au moyen d'une expression qui peut être modifiée dynamiquement à l'exécution.

Syntaxe

$json.parse( json )

Paramètres

json string
Arbre json à charger

Retour

Objet (généralement un map) reprenant les données de l'arbre json sous forme d'objets.

Exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
var json = `{ "value": "Hello world",
              "foo": 1,
              "bar": true,
               "more": [
                 { a: 1 },
                 { a: 2 },
                 "end"
               ] }`::t;

var obj = $json.parse(json);
$logger.info(obj.value);        // Hello world
$logger.info(obj.foo);          // 1
$logger.info(obj.bar);          // true
$logger.info(obj.more[1].a);    // 2