aardio 文档

web.json 库模块帮助文档

JSON 库使用指南

JSON 成员列表 #

解析器。
导入此库 JSON 会重定向到 JSON 库并指向同一名字空间。
字符串化时完全符合 JSON 官方标准。
解析使用 aardio-json 扩展语法,兼容JSON,JSONP,JSON5,部分类YAML语法,
存取大容量数据请改用数据库组件

JSON.load(文件路径,是否解析转义符,输入代码页) #

自文件加载 JSON 并返回 aardio 对象。
此函数内部调用 JSON.tryParse 函数,参数用法基本相同。

JSON.ndParse #

解析 ndjson,也就是每行一句 JSON 。
兼容 JSON 行分隔符: '\r'、'\r
'、'
'、'\x1E'
此函数忽略错误行,错误行不会抛出异常。
但会通过 io.stderr.write 函数输出错误信息与出错 JSON

JSON.ndParse(输入文本,是否解析转义符) #

解析 ndjson。
只能输入 UTF-8 文本,字符串不能有 BOM 编码头(一般也不可能有)

JSON.parse #

使用宽松的 JSON 语法解析并返回表对象,
支持自动检测输入字符串的 Unicode BOM,
除完全支持 JSON 标准之外,并可兼容 JSONP,JSON5,支持 aardio-JSON 扩展标准。
可解析与 JSON 兼容的 Python 字典代码(可识别 True,False,None 关键字)

JSON.parse(输入文本,是否解析转义符,输入代码页) #

参数@2默认为 true,
代码页默认为 65001 即 UTF-8 编码,
输入文本如使用了 UTF-16 LE/BE 编码则转换为 UTF-8,
返回对象的元表 _defined 字段记录了所有已定义的键,
参数传入空值或空字符串返回空值
解析误到错误的 JSON 语法时会抛出异常

JSON.save(文件路径,对象,是否格式化,是否使用Unicode编码) #

将参数 @2 指定的对象转换为 JSON 并存储到 参数 @1 指定的文件。
其他参数为可选参数。

此函数内部调用 JSON.stringify,参数用法与该函数相同。
除参数 @1,@2 以外的其他参数为可选参数。

函数执行成功返回 true,
失败返回 null,错误信息。

JSON.stringify #

转换为参数 @1 为 JSON 文本

表对象可在元表 _defined 字段中预定义可能为 null 值的键,
也可以在 _json 元方法中返回一个自定义的对象用于转换为 JSON。
注意 {} 为空对象,table.array 创建 JSON 空数组,详见 table.type 函数说明。

关于时间对象也 buffer 对象的转换规则请查看 JSON 文档。
以及:范例 / web 应用 / JSON / 特殊数据类型

JSON.stringify(对象,是否格式化,是否使用UNICODE编码) #

参数 @2, @3 可选,默认不格式化,启用 UNICODE 编码。
如果启用格式化,则参数 @3 则默认为 false。

注意即使选择了不启用 Unicode 编码,单引号,
以及一些可能无法直接显示的 Unicode 字符仍然会进行转义。
表对象中值不是表对象的成员先转换。

JSON.stringifyArray(表,是否格式化,是否使用Unicode编码,是否清除null值) #

如果参数 @1 未声明数组类型,则添加类型声明,
空数组会返回[]而不是 {},其他参数与 JSON.stringify 相同

JSON.strip() #

将一个对象转换为 JSON ,再转换为 aardio 纯值类型对象。
纯值类型指的是字符串、数值、布尔值、buffer、指针、纯值表。
关于纯值与纯值表可参考 table.parseValue 函数的说明。
纯值支持原值序列化,并与 JSON 兼容。

JSON.strip 兼容 Python 对象。

如果提前导入 dotNet.json ,
则可以用此函数将 .NET 对象转为 aardio 纯值对象

JSON.tryParse(输入文本,是否解析转义符,输入代码页) #

解析 JSON 并返回 aardio 对象
作用与参数用法与parse函数一样,
请参考该函数说明

唯一的区别是:
parse函数遇到JSON语法错误时抛出异常
而tryParse遇到错误时返回 null,错误信息

Markdown 格式