aardio 文档
aardio 范例:JSON 扩展
//JSON 扩展
import console;
import web.script.json;
//创建 JScript 解释器
var vm = web.script();
//添加脚本,多次写入此属性是添加脚本不是覆盖替换脚本
vm.script = /*
function test(data) {
//return JSON.stringify(data); // 已自动引入 JSON3
return [data[1],data[2]];
}
var obj = {test:test}
*/
var aardioArray = {
{50,80};
{20,24};
{100,103};
{4,8};
}
/*
通过 vm.json.test 调用 JS 函数,作用与调用 vm.script.test 类似,
但 vm.json.test 会自动使用 JSON 转换参数与返回值,因此可以传输 JSON 支持的所有对象。
*/
var ret = vm.json.test( aardioArray );
//如果JS 函数名包含 . 号这样写:
var ret = vm.json["obj.test"]( aardioArray );
/*
之所以不允许 vm.json.obj.test() 这种在 JS 函数名中直接包含点号的写法,
是为了避免不必要的混淆,不能把 vm.json.obj 理解为 vm.script.obj 这样的 JS 对象。
vm.json 本质是 vm.eval + JSON 的语法糖,调用、传参、取返回值都要随时明确这一点。
例如你不能将 vm.json.xxx 作为 JS 对象传入 JS 函数。
更不能在 vm.json.xxx() 参数中传入一个 JS 对象。
*/
//这个下标里可以写返回 JS 函数的 JS 表达式,这样就很灵活了,例如:
var ret = vm.json["(function() { return obj.test; })()"]( {50,80} );
//使用 vm.json() 将 aardio 对象转换为 JS 对象。
var jsArray = vm.script.obj.test( vm.json(aardioArray) )
//上面的 vm.script.obj 是真正的 JS 对象,参数可以使用 JS 对象。
//使用 vm.json() 将 JS 对象转换为 aardio 对象
console.dump( vm.json(jsArray) );
console.pause();
Markdown 格式