2014-04-04 23:37:31| 分类: Javascript | 标签: |举报 |字号大中小 订阅
require(["dojox/json/query"], function(JSONQuery){输出结果
var data = [
{ id: 1, permissionName: 'Log in', checkBox: 2
},
{ id: 2, permissionName: 'Reports control', checkBox: 0,
children: [
{id:6, permissionName: 'Stand Report Control', checkBox: 2},
{id:7, permissionName: 'Custom Report Control', checkBox: 2}
]
},
{ id: 3, permissionName: 'System Log', checkBox: 0,
children:[
{id:8, permissionName: 'View', checkBox: 0,
children:[
{id:11, permissionName: 'XXXXXX', checkBox: 2},
{id:13, permissionName: 'XXXXXX', checkBox: 2}
]
}
]
}];
//表达式 查找到checkBox的值为2的对象
var r0 = JSONQuery("[?checkBox=2]", data);
console.log(r0);
//表达式 递归查找到checkBox的值为2的对象
var r1 = JSONQuery("..[?checkBox=2]", data);
console.log(r1);
//递归对象查找id
var r2 = JSONQuery("..id", data);
console.log(r2)
//查找对象的id,数组无效
var r3 = JSONQuery("id", {id: 10, permissionName: "LLL"});
console.log(r3);
//数组序号为2的对象的属性的值
var r4 = JSONQuery("[2].id", data);
console.log(r4);
//表达式 递归查找到checkBox的值为2的对象的id的值
var r1 = JSONQuery("..[?checkBox=2][=id]", data);
console.log(r1);
});
更多用法,见参考资料
- .属性 - This will return the provided property of the object(返回属性的值)
- [表达式] - This returns the property name/index defined by the evaluation of the provided expression (根据表达式定义返回属性 name/index)
表达式 介绍几个常用的
- [?表达式] 返回表达式为true的对象
- [/字段] /表示排序升序
- [=字段] 返回不是对象,而是对象中的字段
- ..[?表达式] 表示递归查找
- 它们也可以组合使用,具体看看上面的例子
评论