我无法显示通过JSON获取API的数据。我的代码如下
var nextSessionAPI = 'www.someapi.co.uk';
getSessionValues(exhibitionID,sessionKey);
function getSessionValues(exhibitionID,sessionKey) {
jQuery.getJSON(nextSessionAPI, function(data) {
jQuery.each(data.Data.Session, function(index, sessions) {
console.log('success');
if(jQuery.trim(sessions.StartDate).exists()) {
console.log(sessions.StartDate);
};
});
});
}
检查控制台我正在获取API,所以我认为我的代码可以运行到console.log('success');.
API如下:
{
"Parameters":{
"EditionId":45,
},
"Data":
[
{
"__type":"Session:ID",
"Id":
{
"Id":1251,
},
"DisplayName":"Some event",
"EndDate":"\/Date(1366712700000)\/",
"StartDate":"\/Date(1366711200000)\/"
}
]
}
非常感谢任何帮助。附:对我来说很容易,我的JS和JSON并不是最强的!
答案 0 :(得分:0)
json不包含任何名为Sessions for Data的属性,因此您必须将脚本更改为jQuery.each(data.Data, function(...))
。
var nextSessionAPI = 'www.someapi.co.uk';
getSessionValues(exhibitionID,sessionKey);
function getSessionValues(exhibitionID,sessionKey) {
jQuery.getJSON(nextSessionAPI, function(data) {
jQuery.each(data.Data, function(index, sessions) {
/* do funky stuff here */
});
});
}
答案 1 :(得分:0)
你的修复:
var nextSessionAPI = 'www.someapi.co.uk';
getSessionValues(exhibitionID,sessionKey);
function getSessionValues(exhibitionID,sessionKey) {
jQuery.getJSON(nextSessionAPI, function(data) {
jQuery.each(data.Data, function(index, sessions) {
console.log('success');
if(jQuery.trim(sessions.StartDate).exists()) {
console.log(sessions.StartDate);
};
});
});
}
data.Data是会话列表。数据没有隐藏密钥:Session
答案 2 :(得分:0)
jQuery.trim
返回一个字符串,您无法在其上调用exists
,这可能是您收到错误的原因。如果我在字符串上调用存在,我会收到错误“TypeError:Object aaa has method with exists'”。由于StartDate在您的JSON中是“/ Date(1366711200000)/”,因此它将是有效日期或null,因此......
尝试替换该行:
if(jQuery.trim(sessions.StartDate).exists())
只需简单:
if(sessions.StartDate)