2012-10-02 221 views
1

如何用ajax讀取嵌套的json?JSON嵌套表

我有如下一個SQL請求後,PHP格式化的JSON:

[ 
{ 
"owner_info": 
    { 
    "name":"John", 
    "address":"4", 
    "date":"10/01/2012" 
    } 
    }, 
    { 
    "telephone":  
     [ 
      { 
      "id":"1", 
      "place":"5", 
      "number":"+123456" 
      }, 
      { 
      "id":"2", 
      "place":"5", 
      "number":"+789456" 
      }, 
      { 
      "id":"3", 
      "place":"8", 
      "number":"+0011223" 
      }, 
     ] 
    } 
] 

阿賈克斯做一個經典的

$.getJSON(script, function (result) { 
    $(result).each(function(i){  
     // do something with result  
    }); 
}); 

我想:

result[i].owner_info.name -> error 
result[i].telephone[0].id -> error 

我一直在尋找在互聯網上但找不到任何解決方案...

謝謝

回答

2

您正在使用錯誤的each方法。 $(selector).each()$.each()不一樣!

從jQuery文檔。

$.each()功能是不一樣的$(selector).each(),這是 用於迭代,排他地,在jQuery對象。可以使用函數$.each() 迭代任何集合,無論它是否爲 映射(JavaScript對象)或數組。

使用正確each函數的解決方案。

$.getJSON(script, function (result) { 
    $.each(result, function(key, value) { 
     // either use 
     console.log(value.owner_info.name); 
     // or 
     console.log(result[key].owner_info.name); 
    }); 
}); 
+0

感謝,但我仍然可以在javascript同樣的錯誤: owner_info.name爲空或不是對象 是有什麼錯這樣的嵌套JSON? – WKx

+0

然後'結果'不是你指定的格式!我用你給的數據創建了一個[jsfiddle](http://jsfiddle.net/F2Ubf/),它的工作原理! – clentfort

+0

我剛剛意識到,試圖閱讀電話的部分是引發錯誤的部分。 我想value.telephone [1] .number,但像上面的JavaScript錯誤 – WKx