Ces fonctions encodent des objets dictionnaire en chaînes JSON et décodent des chaînes JSON en dictionnaires.
json_enc
| **Syntaxe** | **json_enc(d)** |
|---|---|
| Description | Encode un objet dictionnaire en chaîne JSON. |
| Paramètres | d : objet dictionnaire à encoder. |
| Valeur de retour | Chaîne encodée en JSON en cas de succès, ou false en cas d'échec. |
Exemple :
var_a = []
var_b = ['v1', 'v2']
set(var_a, 'k1', 'v1')
set(var_a, 'k2', var_b)
var_c = '{"k1":"v1","k2":["v1","v2"]}'
say(concat('json_enc=', json_enc(var_a)))
say(concat('json_dec=', get(json_dec(var_c), 'k1')))
Sortie :
json_enc={"k1":"v1","k2":["v1","v2"]}
json_dec=v1
json_dec
| **Syntaxe** | **json_dec(s)** |
|---|---|
| Description | Décode une chaîne JSON en dictionnaire. |
| Paramètres | s : chaîne JSON à décoder. |
| Valeur de retour | Dictionnaire en cas de succès, ou false en cas d'échec. |
Remarque
Une chaîne numérique telle que "123" se décode en variable de type nombre. Avant d'opérer sur la valeur décodée (par exemple pour extraire une valeur), utilisez la fonction type pour vérifier son type.
Les exemples suivants illustrent deux scénarios : le décodage d'une chaîne numérique et celui d'un objet JSON.
Exemple 1 : Décodage d'une chaîne numérique
var_c = '123'
type_var_c = type(json_dec(var_c))
if eq(type_var_c, 'table') {
say(concat('json_dec=', get(json_dec(var_c), 'k1')))
} else {
say(type_var_c)
}
Sortie :
number
Exemple 2 : Décodage d'un objet JSON
var_c = '{"k1":"v1","k2":["v1","v2"]}'
type_var_c = type(json_dec(var_c))
if eq(type_var_c, 'table') {
say(concat('json_dec=', get(json_dec(var_c), 'k1')))
} else {
say(type_var_c)
}
Sortie :
json_dec=v1