1

我无法显示通过 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)\/"
        }
    ]
}

任何帮助将不胜感激。ps 放轻松,我的 JS 和 JSON 不是最强的!

4

3 回答 3

0

jQuery.trim返回一个字符串,您无法调用该字符串,exists这可能是您收到错误的原因。如果我在字符串上调用存在,则会收到错误“TypeError: Object aaa has no method 'exists'”。由于您的 JSON 中的 StartDate 是“/Date(1366711200000)/”,因此它要么是有效日期,要么为空,所以......

尝试更换线路:

if(jQuery.trim(sessions.StartDate).exists())

很简单:

if(sessions.StartDate)
于 2013-04-19T09:29:15.773 回答
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

于 2013-04-19T09:19:27.187 回答
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 */
        });
    });
}
于 2013-04-19T09:18:36.773 回答