我有一个具有它的属性的Json对象。我使用defiant.js用类似于XPath的命令搜索JSON。
是否有一个函数可以检索以前缀开头的json的所有对象?例如,所有以' en _'在上面的截图中?
答案 0 :(得分:2)
尝试使用此XPath选择器... /*/*[starts-with(name(),"en_")]
使用defiant.js@1.3.1 ...
看起来效果很好
var x = {
"thing": "cool",
"en_item": "awesome",
"en_other": "awesome",
"inner": {
"en_thing": "less than cool"
},
"en_yetanother": "awesome",
"notit": "rubbish"
}
alert(JSON.search(x, '/*/*[starts-with(name(),"en_")]'))
<script src="//cdnjs.cloudflare.com/ajax/libs/defiant.js/1.3.1/defiant.min.js"></script>
答案 1 :(得分:0)
您可以执行此操作,例如for
周期添加了hasOwnProperty
检查,如下所示:
var filteredObject = {};
//obj - your source object
for(i in obj) {
if(obj.hasOwnProperty(i) && i.indexOf('en_') > -1){
filteredObject[i] = obj[i];
}
}