2012-08-06 73 views
2

我得到以下JSON從服務器JSON對象返回沒有名稱

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

返回正如你可以看到someStuff第一個節點沒有命名。

有沒有辦法來處理這是JavaScript,例如,我怎樣才能選擇一個沒有名字的節點?

我知道,正確的解決方案是命名中產生JSON代碼中的節點,但是我正在尋找一個骯髒的修復,直到我可以聯繫開發商:)

回答

8

.foo是一樣的["foo"],所以只要名稱不是標識符就使用[]

myObjectFromJSON.someStuff[""].foo 
+0

很好的解釋,我從中學到了!謝謝 – erik404 2012-08-06 20:42:37

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/

1

訣竅是在下面的例子中使用[]操作符,如:

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