jsonEncode

jsonEncode

> Funkcje

Koduje obiekt object do łańcucha JSON.

Parametry
Zwracana wartość
TypeScript

W JavaScripcie JSON.stringify(value) pomija w milczeniu to, czego nie umie zapisać, zamiast to zgłosić: Map i Set dają oba {}, a właściwość o wartości undefined znika z obiektu — wewnątrz tablicy staje się null. Przekształć więc swoje tablice asocjacyjne przed kodowaniem: Object.fromEntries(m) albo [...m]. A przy odczycie JSON.parse zgłasza SyntaxError przy niepoprawnym JSON-ie, podczas gdy jsonDecode w LeekScripcie po prostu zwraca null.

Python

W Pythonie json.dumps(value) zgłasza TypeError na wartości, której nie umie serializować, podczas gdy jsonEncode w LeekScripcie zapisuje błąd w dzienniku i zwraca pusty łańcuch. Dotyczy to set oraz obiektów API gry (Cell, Leek, Weapon): przekształć je najpierw, list(mon_set) albo cellule.id. Inna różnica: klucze słownika stają się łańcuchami, json.dumps({1: 2}) daje '{"1": 2}'. A przy odczycie json.loads zgłasza JSONDecodeError przy niepoprawnym JSON-ie, podczas gdy jsonDecode zwraca null.