我正在通过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,只是更多的项目
答案 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
}
}
如果您使用的是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
});
也许我猜错了,但试试这个。