//JSON解析器
import web.json;
import console;

var json = /*******
//这是注释

#这也是注释

/*
如果根节点是一个对象，可以省略外层的 {}
*/
name = {
    a: 123,
    b: 456,
    c: [1,2,3]
}
tm: 2021-02-1T15:02:31+08:00 //可以使用ISO 8601格式表示日期时间
名字 = 值，可以使用等号分隔键值
名字2: 值，也可以用冒号分隔键值
名字3  值，甚至可以不使用分隔符，用空格分开就可以

名字4
这样写也可以

名字5
这样写也没问题

"名字6":"完全兼容传统的JSON语法",
名字7: 分隔符也可以使用分号;
名字8: 分隔符可以不写也没问题
名字9:  null //支持 null 值（虽然在 aardio 中 null 等效于删除变量 ）
*******/ 

//json字串解码成table对象
var tab  = web.json.parse(json);
console.dumpJson( tab ) 
console.more(1);

//时间对象跟JS一样格式化为ISO 8601格式的时间字符串
tab.datetime = time.now();

/*
buffer对象转换为node.js兼容的格式，
例如下面的buffer转换为JSON以后是这样的

{"data":[97,98,99],"type":"Buffer"} 
*/
tab.buffer = raw.buffer("abc")

// table对象转换为JSON字符串,参数2为true时格式化JSON
var json = web.json.stringify(tab,true);
console.dump(json);

//再次使用JSON转换为对象
var jsonObject  = web.json.parse(json);

//可以用 raw.buffer() 还原buffer对象，例如：
var buffer = raw.buffer(jsonObject.buffer);
console.log( buffer,type(buffer) )

//可以用 time()  还原时间对象，例如：
var datetime = time(jsonObject.datetime)
console.log( datetime,type(datetime) )

console.pause(true);
