aardio 文档
aardio 范例: JSON 库 - 特殊数据类型
//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 类与 node.js 中的 Buffer 类转换结果类似。
{"data":[230,181,139],"type":"Buffer"}
其中 type 指明类型,data 为 buffer 字节数组的值。
buffer,
在 raw.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()
Markdown 格式