我从服务器返回以下JSON
{
"someStuff": {
"": {
"foo": 0
},
"moreStuff": {
"foo": 2
}
}
}
如您所见,someStuff中的第一个节点未命名。
有没有办法处理这个是JavaScript,例如,我如何选择一个没有名字的节点?
我知道正确的解决方案是在生成JSON的代码中命名节点,但我正在寻找一个脏修复,直到我可以联系开发人员:)
答案 0 :(得分:8)
.foo
与["foo"]
相同,因此只要名称不是标识符,就使用[]
。
myObjectFromJSON.someStuff[""].foo
答案 1 :(得分:5)
答案 2 :(得分:1)
$(function(){
var data={ "someStuff": {
"": { "foo": 0 },
"moreStuff": {"foo": 2 }
}
}
$.each(data.someStuff,function(index,item){
alert(item.foo);
});
});
答案 3 :(得分:1)
诀窍是使用[]运算符,如下例所示:
a = $.parseJSON('\
{\
"someStuff": {\
"": {\
"foo": 0\
},\
"moreStuff": {\
"foo": 2\
}\
}\
}\
');
a.someStuff[''].foo === 0 // returns true