没有名称返回的JSON对象

时间:2012-08-06 20:33:49

标签: javascript jquery json

我从服务器返回以下JSON

{
    "someStuff": {
        "": {
            "foo": 0
        },
        "moreStuff": {
            "foo": 2
        }
    }
}

如您所见,someStuff中的第一个节点未命名。

有没有办法处理这个是JavaScript,例如,我如何选择一个没有名字的节点?

我知道正确的解决方案是在生成JSON的代码中命名节点,但我正在寻找一个脏修复,直到我可以联系开发人员:)

4 个答案:

答案 0 :(得分:8)

.foo["foo"]相同,因此只要名称不是标识符,就使用[]

myObjectFromJSON.someStuff[""].foo

答案 1 :(得分:5)

试试这个:

data.someStuff[''].foo  

http://jsfiddle.net/GSWg9/

答案 2 :(得分:1)

$(function(){

  var data={ "someStuff": {
                             "": { "foo": 0 },
                             "moreStuff": {"foo": 2 }
                           }
           }

    $.each(data.someStuff,function(index,item){

         alert(item.foo);
    });

});

示例:http://jsfiddle.net/kshyju/hURDH/4/

答案 3 :(得分:1)

诀窍是使用[]运算符,如下例所示:

a = $.parseJSON('\
    {\
        "someStuff": {\
            "": {\
                "foo": 0\
            },\
            "moreStuff": {\
                "foo": 2\
            }\
        }\
    }\
');
a.someStuff[''].foo === 0  // returns true