jsonEncode

jsonEncode

> Функции

Кодирует объект object в строку JSON.

Параметры
Возвращаемое значение
TypeScript

В JavaScript JSON.stringify(value) молча пропускает то, что не умеет записать, вместо того чтобы сообщить об этом: Map и Set дают оба {}, а свойство со значением undefined исчезает из объекта — внутри массива оно становится null. Поэтому преобразуйте свои таблицы перед кодированием: Object.fromEntries(m) или [...m]. А при чтении JSON.parse возбуждает SyntaxError на некорректном JSON, тогда как jsonDecode в LeekScript просто возвращает null.

Python

В Python json.dumps(value) возбуждает TypeError на значении, которое он не умеет сериализовать, тогда как jsonEncode в LeekScript пишет ошибку в журнал и возвращает пустую строку. Так происходит с set и с объектами игрового API (Cell, Leek, Weapon): преобразуйте их заранее, list(mon_set) или cellule.id. Другое отличие: ключи словаря становятся строками, json.dumps({1: 2}) равно '{"1": 2}'. А при чтении json.loads возбуждает JSONDecodeError на некорректном JSON, тогда как jsonDecode возвращает null.