ajax json请求,如何显示结果?

时间:2013-06-12 14:27:06

标签: jquery ajax json

我正在通过ajax打电话到api。什么是显示结果的最简单方法?如果我提醒结果我只是得到[对象对象],如果我尝试使用我知道的项目在返回的json中警告结果(例如results.title)我只是得到'未定义'错误。

我使用的代码如下:

$.ajax({
    url: 'http://API-LINK-format=json',
    dataType: 'json',
    success: function(results) {
    alert(results.title);
    alert(results)
    }
})

我试图解析JSSO,但是我得到了一个错误,意外的令牌o。

任何帮助表示赞赏!感谢

api返回的内容如下:

{"request":
    {
     "format":"json","method":"theMethod","id":"theID"},
     "time":"0.00863",
     "job":{"types":{"type":["Permanent"]},
     "email":"EMAIL",
     "title":"theTitle"
     }
}

只有更多嵌套,更长等

EDIT ::

使用:

alert(results.request.title);

我仍然有一个未定义的警报。我运行了每个循环,结果我以某种方式得到3个结果?我运行这段代码:

$.ajax({
    url: 'http://API-LINK-format=json',
    dataType: 'json',
    success: function(results) {
        $.each(results, function(i, result){
             alert(result.title)
        }
    }
})

并且它提醒3次,前2个为未定义,然后第3个给了我我需要的东西..但就像我说我知道api正在返回如上所述的json,只是更多的项目

2 个答案:

答案 0 :(得分:2)

你需要

requests.job.title

如果你格式化它,这是你的实际结构

{ // <-- this is your requests object
    "request": { // -- what you want isn't in here -- this is the first element in the each loop
        "format": "json",
        "method": "theMethod",
        "id": "theID"
    },
    "time": "0.00863", // <-- it isn't here either -- this is the second element in the each loop
    "job": { // it's here - so you want request.job -- this is the third
        "types": {
            "type": ["Permanent"]
        },
        "email": "EMAIL",
        "title": "theTitle" // to get this it's request.job.title
    }
}

FIDDLE

如果您使用的是Chrome,则可以通过执行console.log并检查控制台来轻松检查对象

答案 1 :(得分:0)

我猜是异步问题,请尝试:

var req = function(){

return $.ajax({
         url: 'http://API-LINK-format=json',
         dataType: 'json',
         success: function(results) {
          console.log('success');
         }
       })
});

req().done(function(data) {
 //do something with data
});

也许我猜错了,但试试这个。

http://api.jquery.com/deferred.done/