【问题标题】:How to tackle jSON with javascript如何使用 javascript 处理 JSON
【发布时间】:2009-06-09 12:34:23
【问题描述】:

拳头,这是我用 PHP 的 json_encode 函数创建的 JSON 对象

{
    "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]); }

什么也没给我。

我哪里错了?

【问题讨论】:

    标签: jquery json


    【解决方案1】:

    jQuery 示例中的“.items”是一个 .NET 的东西 - 你有 data.Gatwick[0].destination == 'VCE'

    【讨论】:

      【解决方案2】:

      您的数据对象中没有“项目”...只需使用

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

      什么时候可以做:

      item[0].destination
      

      【讨论】:

        【解决方案3】:

        PHP 返回的 JSON 不是数组。注意花括号,而不是方括号。

        【讨论】:

        • 这是真的.. 但我很确定 jquery 的 $.each 仍然可以工作,i 变量将只包含 dict 键(或任何 javascript 调用它,我是 python家伙)
        猜你喜欢
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 2019-02-28
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        • 2010-10-22
        • 2015-08-13
        相关资源
        最近更新 更多