基本上我希望能够在Javascript(可选JQuery)中搜索具有特定元素的嵌套元素的JSON并进行编辑。
实施例。搜索ID为110的“组件”,并将名称更改为“视频卡”。
请注意,以下JSON只是一个示例。我想知道是否存在javascript库或好的技巧来做这样的事情,我不认为遍历整个json或编写我自己的方法是最好的解决方案。
{
"computers": [
{
"id": 10,
"components": [
{
"id": 56,
"name": "processor"
},
{
"id": 24,
"name": "ram"
}
]
},
{
"id": 11,
"components": [
{
"id": 110,
"name": "graphic card"
},
{
"id": 322,
"name": "motherboard"
}
]
}
]
}
答案 0 :(得分:2)
您可以尝试linq.js。
答案 1 :(得分:1)
您可以使用此javascript lib,DefiantJS(http://defiantjs.com),您可以使用它在JSON结构上使用XPath过滤匹配。把它放在JS代码中:
var data = {
"computers": [
{
"id": 10,
"components": [
{ "id": 56, "name": "processor" },
{ "id": 24, "name": "ram" }
]
},
{
"id": 11,
"components": [
{ "id": 110, "name": "graphic card" },
{ "id": 322, "name": "motherboard" }
]
}
]
},
res = JSON.search( data, '//components[id=110]' );
res[0].name = 'video card';
这是一个工作小提琴;
http://jsfiddle.net/g8fZw/
DefiantJS使用方法“search”扩展全局对象JSON,并返回一个匹配的数组(如果没有找到匹配项,则返回空数组)。您可以在此处使用XPath Evaluator尝试lib和XPath查询: