JSON返回的未定义值

时间:2011-07-23 16:31:25

标签: javascript json jquery getjson

根据我以前的post我试图从使用JSON的RESTful接口获取一些信息。我正在研究JQuery 1.5。

我面临的问题是我回来了未定义的值。我无法使用firebug,因为我的应用程序是使用PhoneGap开发的,应用程序正在iPhone的模拟器上运行。

如果我访问RESTful界面(我在浏览器中键入“example.json”url - 其中示例是由另一个开发人员创建的有效url),请使用以下格式返回结果:

[{"person":{"created_at":"2011-07-18T17:51:33Z","id":1,"name":"John","age":60,"surname":"Smith","car_id":1,"updated_at":"2011-07-18T17:51:33Z"}},{"person":{"created_at":"2011-07-18T17:51:35Z","id":1,"name":"Johnny","age":50,"surname":"Deep","car_id":2,"updated_at":"2011-07-18T17:51:35Z"}}]

我需要获取信息ID,名称,年龄并将它们存储在一个数组(而不是一个html表)中。只是为了查看连接是否返回任何值,我使用代码:

    var jqxhr = $.getJSON("example.json", function(person) {
        $.each(person, function(i, person) {
            alert(person.name);
            alert(person.age);
        });
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("Cannot connect to the SWT's maps. Please try again later!"); })
    .complete(function() { alert("complete"); });

那么,为什么我会将警报未定义为值?

2 个答案:

答案 0 :(得分:2)

此代码应该有效:

var jqxhr = $.getJSON("example.json", function(person) {
        $.each(person, function(i, item) {
            alert(item.person.name);
            alert(item.person.age);
        });
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("Cannot connect to the SWT's maps. Please try again later!"); })
    .complete(function() { alert("complete"); });

答案 1 :(得分:-1)

你知道你的代码吗?尝试:

var jqxhr = $.getJSON("example.json", function(data) {
 $.each(data, function(i, item) {
        alert(item.name);
        alert(item.age);
    });
}

希望这有帮助