2013-01-14 157 views
0

所以我運行$ .getJSON聲明,我有一些問題......這裏的JSON:問題訪問多維數組

{ 
    "K-6608-1-0": [ 
     { 
      "Info": [ 
       { 
        "SVGFile": "46658.svg", 
        "Name": "Faucet Parts" 
       } 
      ], 
      "Parts": [ 
       { 
        "Cod":"70012", 
        "Name":"Ruela de Parafuso Reforçado B2", 
        "Price":"$100" 
       }, 
       { 
        "Cod":"71131", 
        "Name":"Parafusasdasdasdsdao Reforçado B2", 
        "Price":"$45" 
       }, 
       { 
        "Cod":"78208", 
        "Name":"Tubo de Conexão R2D2", 
        "Price":"$150" 
       } 
      ] 
     } 
    ] 
} 

所以,讓我們說我做了的getJSON這樣:

$.getJSON('test.json', function(data){ 
    alert(data["K-6608-1-0"]["Info"]["SVGFile"]); 
}) 

爲什麼這段代碼沒有返回「46658.svg」?錯誤在哪裏?你嵌套

在此先感謝^^

+2

'data [「K-6608-1-0」]'是一個包含一個元素的數組,它是一個對象,'Info'也是。你想'data [「K-6608-1-0」] [0] [「Info」] [0] [「SVGFile」]' – Matt

回答

3

K-6608-1-0Info是數組,所以你必須設置位置。

alert(data["K-6608-1-0"][0]["Info"][0]["SVGFile"]); 
         ^  ^
0
alert(data["K-6608-1-0"][0]["Info"]["SVGFile"]); 
         ^^^--- add this 

了陣列中嵌套在嵌套在數組的對象....第一個K-不管實際上是一個數組。您可能還必須對更深的級別執行相同的操作。

+1

'Info'也是一個數組。 – Matt

+0

你在'[「Info」]後忘了'[0]',因爲它也是一個數組 –

2

這是因爲data["K-6608-1-0"]是一個數組,所以訪問你想要的屬性,首先你要訪問該數組的元素bi其索引(data["K-6608-1-0"][0]["Info"]也是一個數組):

$.getJSON('test.json', function(data){ 
    alert(data["K-6608-1-0"][0]["Info"][0]["SVGFile"]); 
    //      ^  ^
});