jsonEncode

jsonEncode

> Fonctions

Encode l'objet object en chaîne JSON.

Paramètres
Retour
TypeScript

En JavaScript, JSON.stringify(value) passe sous silence ce qu'il ne sait pas écrire, au lieu de le signaler : une Map et un Set donnent tous deux {}, et une propriété valant undefined disparaît de l'objet — dans un tableau, elle devient null. Convertissez donc vos tables avant d'encoder : Object.fromEntries(m) ou [...m]. Et à la lecture, JSON.parse lève une SyntaxError sur du JSON invalide, quand jsonDecode en LeekScript se contente de renvoyer null.

Python

En Python, json.dumps(value) lève une TypeError sur une valeur qu'il ne sait pas sérialiser, là où jsonEncode en LeekScript écrit une erreur dans le journal et renvoie une chaîne vide. C'est le cas d'un set et des objets de l'API de jeu (Cell, Leek, Weapon) : convertissez-les d'abord, list(mon_set) ou cellule.id. Autre écart, les clés d'un dictionnaire deviennent des chaînes : json.dumps({1: 2}) vaut '{"1": 2}'. Et à la lecture, json.loads lève une JSONDecodeError sur du JSON invalide, quand jsonDecode renvoie null.