解析器。
导入此库 JSON 会重定向到 JSON 库并指向同一名字空间。
字符串化时完全符合 JSON 官方标准。
解析使用 aardio-json 扩展语法,兼容JSON,JSONP,JSON5,部分类YAML语法,
存取大容量数据请改用数据库组件
自文件加载 JSON 并返回 aardio 对象。
此函数内部调用 JSON.tryParse 函数,参数用法基本相同。
解析 ndjson,也就是每行一句 JSON 。
兼容 JSON 行分隔符: '\r'
、'\r
'、'
'、'\x1E'
。
此函数忽略错误行,错误行不会抛出异常。
但会通过 io.stderr.write 函数输出错误信息与出错 JSON
解析 ndjson。
只能输入 UTF-8 文本,字符串不能有 BOM 编码头(一般也不可能有)
使用宽松的 JSON 语法解析并返回表对象,
支持自动检测输入字符串的 Unicode BOM,
除完全支持 JSON 标准之外,并可兼容 JSONP,JSON5,支持 aardio-JSON 扩展标准。
可解析与 JSON 兼容的 Python 字典代码(可识别 True,False,None 关键字)
参数@2默认为 true,
代码页默认为 65001 即 UTF-8 编码,
输入文本如使用了 UTF-16 LE/BE 编码则转换为 UTF-8,
返回对象的元表 _defined 字段记录了所有已定义的键,
参数传入空值或空字符串返回空值
解析误到错误的 JSON 语法时会抛出异常
将参数 @2 指定的对象转换为 JSON 并存储到 参数 @1 指定的文件。
其他参数为可选参数。
此函数内部调用 JSON.stringify,参数用法与该函数相同。
除参数 @1,@2 以外的其他参数为可选参数。
函数执行成功返回 true,
失败返回 null,错误信息。
转换为参数 @1 为 JSON 文本
表对象可在元表 _defined 字段中预定义可能为 null 值的键,
也可以在 _json 元方法中返回一个自定义的对象用于转换为 JSON。
注意 {} 为空对象,table.array 创建 JSON 空数组,详见 table.type 函数说明。
关于时间对象也 buffer 对象的转换规则请查看 JSON 文档。
以及:范例 / web 应用 / JSON / 特殊数据类型
参数 @2, @3 可选,默认不格式化,启用 UNICODE 编码。
如果启用格式化,则参数 @3 则默认为 false。
注意即使选择了不启用 Unicode 编码,单引号,
以及一些可能无法直接显示的 Unicode 字符仍然会进行转义。
表对象中值不是表对象的成员先转换。
如果参数 @1 未声明数组类型,则添加类型声明,
空数组会返回[]
而不是 {}
,其他参数与 JSON.stringify 相同
将一个对象转换为 JSON ,再转换为 aardio 纯值类型对象。
纯值类型指的是字符串、数值、布尔值、buffer、指针、纯值表。
关于纯值与纯值表可参考 table.parseValue 函数的说明。
纯值支持原值序列化,并与 JSON 兼容。
JSON.strip 兼容 Python 对象。
如果提前导入 dotNet.json ,
则可以用此函数将 .NET 对象转为 aardio 纯值对象
解析 JSON 并返回 aardio 对象
作用与参数用法与parse函数一样,
请参考该函数说明
唯一的区别是:
parse函数遇到JSON语法错误时抛出异常
而tryParse遇到错误时返回 null,错误信息