2

我从服务器返回以下 JSON

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

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

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

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

4

4 回答 4

8

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

myObjectFromJSON.someStuff[""].foo
于 2012-08-06T20:35:54.477 回答
5

试试这个:

data.someStuff[''].foo  

http://jsfiddle.net/GSWg9/

于 2012-08-06T20:36:20.133 回答
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/

于 2012-08-06T20:38:03.970 回答
1

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

a = $.parseJSON('\
    {\
        "someStuff": {\
            "": {\
                "foo": 0\
            },\
            "moreStuff": {\
                "foo": 2\
            }\
        }\
    }\
');
a.someStuff[''].foo === 0  // returns true
于 2012-08-06T20:43:28.517 回答