jsonEncode

jsonEncode

> 功能

把对象 object 编码成 JSON 字符串。

参数
返回值
TypeScript

在 JavaScript 中,JSON.stringify(value) 会默默跳过它写不出来的东西,而不是报出来:MapSet 都会得到 {},值为 undefined 的属性会从对象里消失 —— 在数组里则变成 null。所以编码前请先转换你的表:Object.fromEntries(m)[...m]。而在读取时,JSON.parse 遇到无效 JSON 会抛出 SyntaxError,而 LeekScript 的 jsonDecode 只是返回 null

Python

在 Python 中,json.dumps(value) 遇到无法序列化的值会抛出 TypeError,而 LeekScript 的 jsonEncode 会在日志里写一条错误并返回空字符串。set 和游戏 API 的对象(CellLeekWeapon)就是这种情况:请先转换,list(mon_set)cellule.id。另一个差别是字典的键会变成字符串:json.dumps({1: 2}) 等于 '{"1": 2}'。而在读取时,json.loads 遇到无效 JSON 会抛出 JSONDecodeError,而 jsonDecode 返回 null