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 に答える