2009-06-09 33 views
0

拳了,這裏的JSON對象我用PHP的json_encode函數如何解決使用Javascript

{ 
    "Gatwick":[ 
     { 
      "destination":"VCE", 
      "destination_name":"Venezia Marco Polo" 
     },{ 
      "destination":"VCE", 
      "destination_name":"Venezia Marco Polo" 
     },{ 
      "destination":"VCE", 
      "destination_name":"Venezia Marco Polo" 
     } 
    ], 
    "Heathrow":[ 
     { 
      "destination":"VCE", 
      "destination_name":"Venezia Marco Polo" 
     },{ 
      "destination":"VCE", 
      "destination_name":"Venezia Marco Polo" 
     } 
    ] 
} 

我認爲這是好的,因爲我知道它創建的。我使用jQuerys $ .getJSON(...)函數請求了該對象。

假設所有這些都是正確的,我不能爲了我的生活而弄清楚如何訪問json對象中的數據,甚至是非法的任何類型的響應,以指示引擎蓋下發生的任何事情。

我最新的嘗試是把例如從jQuery文檔這樣的複製......

$.getJSON(url, callBack); 

function callBack(data){ 
    $.each(data.items, function(i, item){ 
     alert("YO"); 
    }); 
} 

產生以下JavaScript錯誤

jQuery的1.2.6.min.js(19行) TypeError:表達式結果'object'[undefined]不是一個對象。

這是一個有點神祕。特別是由於使用該

function callBack(data){ alert(data); } 

說的翻譯:

但這

function callBack(data){ alert(data[0]); } 

給我什麼。

我在哪裏錯了?

回答

3

在jQuery的例子中的「.items」是一個.NET的事 - 你有data.Gatwick[0].destination == 'VCE'

1

你沒有在你的數據對象「項目」 ......只是使用

$.each(data, function(i, item){ 

此時您可以這樣做:

item[0].destination 
0

的JSON的PHP正在恢復是不是一個數組。注意花括號,而不是方括號。

+0

這是真的..但我敢肯定,jQuery的$。每個仍將工作,`i`變量只是包含字典鍵(或任何JavaScript調用它,我是一個Python的傢伙) – Jiaaro 2009-06-09 12:44:24