2009-06-09 61 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