2014-03-12 85 views
0

詳情:如何訪問多維JSON數組的ajax成功函數內部

有一個好的一天程序員。我的服務器正在向我返回多維json數組。現在我只想單獨訪問它,並且我在JSON格式中有點困惑。

問題1:這些Type1和Type2 json格式有什麼區別?

JSON 1型

{ 
    "name": "Stackoverflow", 
    "exp": "4month", 
    "status": 
      { 
       "username": "koushik", 
       "password": "mypassword" 
      } 
} 

JSON 2型

{ 
    "name": "Stackoverflow", 
    "exp": "4month", 
    "status": [ 
     { 
      "username": "koushik", 
      "password": "mypassword" 
     } 
    ] 
} 

我知道都是有效的JSON格式,但它不同的?

問題2:使用Ajax,我可以處理單漁政船JSON數據

例子:它的工作原理

$.ajax({ 
     url:"temp.json", 
     dataType:"json", 
     success:function(data){  
       alert(data.name); 
     } 
    }); 

以同樣的方式我怎麼能處理多維JSON array.Example我想得到這樣的警報(數據=>狀態=>用戶名)。我知道這很容易做,但我在這裏受到傷害。提前致謝。

+0

這不是多維的。它有一個維度。 – Lloyd

回答

4

問題1:是這些Type1和Type2 JSON格式之間的區別?

在第一個中,status屬性引用了一個對象(又有兩個屬性)。在第二種情況下,status屬性引用一個數組,該數組的第一個也是唯一一個元素是一個對象(它又具有兩個屬性)。

問題2:

爲貴 「類型1」,你可以這樣做:

data.status.username 

爲貴 「類型2」:

data.status[0].username 

...或者,如果一個真正的「Type2」的世界案例有一個陣列,其中有更多的對象,你可以循環的項目,並與他們做一些事情:

for(var i = 0; i < data.status.length; i++) { 
    console.log(data.status[i].username); 
} 
1

你需要這樣的事 -

$.each(data.status,function(i,v){ 
    console.log(v.username); 
}); 
1
if($.isArray(data.status)){ 
    // JSON Type 2 
    $(data.status).each(function(){console.log(this.username);}); 

} 
else 
{ 
//JSON Type 1 
console.log(data.status.username); 
}