//JSON 库 - 特殊数据类型 import console; import JSON; //定义 JSON var json = "{ items = [] }"; //转换为对象,items 解析为 纯数组。 var object = JSON.parse(json); //添加数组字段 object.items2 = []; //空数组 object.items3 = [1,2,3]; //纯数组。 object.items4 = {1,2,3}; //包含数组成员的表对象转换为 JSON 数组 //转换为 JSON var json = JSON.stringify(object); console.log(json) //JSON.stringifyArray 总是将参数视为数组处理。 var json = JSON.stringifyArray({}); console.log(json) /* 在 aardio 中 null 是一个不存在的值。 例如 { name = null } 等价于空表 {} 。 而在 JSON 中我们有时候需要保存 null 值。 aardio 通过在元表的 _defined 字段中指定必须保存 null 值的字段名。 可以调用 table.define() 定义需要保留 null 值的键名(可以重复调用以添加键名)。 JSON 或 table.eachName 支持 _defined 元属性。 */ //定义 JSON var json = "{name:null,age:22}"; //解析为对象 var object = JSON.parse(json); //生成 JSON var json = JSON.stringify(object); console.log(json); /* 时间对象与 JS 语言相同转换为 ISO8601 格式字符串。 time 对象与 JS 一样只负责字符串化,不负责在解析 JSON 时自动还原。 应使用 time.iso8601 函数解析 iso8601 格式的时间。 */ //定义对象 var object = { time = time() }; //生成 JSON var json = JSON.stringify(object); //解析为对象 var object = JSON.parse(json); var tm = time.iso8601(object.time); console.log( tostring(tm,"%c") ) /* buffer 类型转换为 JSON 时使用了 node.js 中的 Buffer 格式。 示例: {"data":[230,181,139],"type":"Buffer"} 其中 type 字段指明类型,data 字段为字节数组( table 类型,纯数组对象 )。 raw.buffer 支持在参数中传入这种格式的表对象并还原为 aardio 缓冲区( buffer )。 */ //定义 buffer var buffer = raw.buffer("abc"); //生成 JSON var json = JSON.stringify(buffer); //解析为对象 var bufferObject = JSON.parse(json); //可以作为参数快速还原为 buffer var buffer = raw.buffer(bufferObject) console.log(buffer); console.pause()