我们可以使用JQuery函数来操作和搜索JSON对象吗? 就像我有一个这个对象的数组类型的大对象:
Node
{
Name,
Property1,
Property2
}
我可以使用jquery函数find来查找属性名为John的节点吗? 并同样修改内容??
编辑:是的,我其实是在寻找像JLinq这样的东西, 谢谢
答案 0 :(得分:3)
要找到那个节点,你会像这样循环...
$.each(yourJson, function(i, node) {
if (node.Name == 'John') {
// Found it
return false;
}
});
这是O(n)。
答案 1 :(得分:3)
我认为你在这里寻找的是jLinq。它像linq,但它是一个jquery插件。做你想问的事情真的很容易。它会是这样的:
var matchingNodes = jlinq.from(data.Nodes).equals("Name", "John").select();
如果您只想要第一场比赛,请尝试:
var firstMatch = jlinq.from(data.Nodes).equals("Name", "John").first();
这就是它的全部内容。非常快速有效,而且非常语义化,因此很容易保持理解意图。
答案 2 :(得分:2)
不,抱歉。 jQuery用于处理DOM节点或XML结构。如果要搜索对象哈希,则需要手动执行。即使jQuery有方法可以做到这一点,但它没有任何“神奇”可以让事情变得更快,就像使用DOM搜索一样 - 没有更快的方法来搜索哈希而不是递归(除非你已预先解析了它)
OMFG PEOPLE !!
看,jQuery不是所有JavaScript的全部救星。直接JS中有些东西更好!真是太可怕了:
for(var i=0, l=ary.length; i<l; i++){
if(ary[i].Name=='John'){
// do something
break;
}
}
你正在“寻找”的答案很简单:
$(ary).filter(function(){ return this.Name=='John'; });
快乐?它会变慢,因为你有嵌套的函数调用,它会变慢,因为它将迭代每个元素而不是停止。
但它使用jQuery。