1

我几乎尝试了所有方法,但无法解决这个问题?

我正在使用 JSON 为我的 HTML 应用程序创建一个列表视图,这部分工作得很好。但是在同一个 JSON 调用中,我也希望能够发送其他数据,我可以放入一些变量但不成功。

这是我正在尝试的:

dataUrl = 'http://mypage.com/playermenu.php?callback=?&userid=' + userid,
dataCallback = function(data){
    //var content = data.list.join("");
    //var now = data.menutime; // HERE I WANT THE MENUTIME TO BE PUT INTO A VARIABLE //
    alert("Date: "+data.menutime);
    $('#userbar').html(data.profile); // FETCHING USERS DATA FOR PROFILEBAR //
    $('#games').html(content).listview('refresh');
}

$.getJSON(dataUrl, dataCallback);

上述警报给出:日期:未定义

我的 JSON 看起来像这样:

([{"menutime":"2013-04-28 15:00:50"},{"profile":"troels"}])

希望得到这方面的帮助。

提前致谢 :-)

4

1 回答 1

1

为什么服务器要添加()?这使它成为无效的 JSON,被$.getJSON().

查看浏览器中的 JavaScript 控制台。它应该有这样的错误:

SyntaxError: Unexpected token (

这是您自己的服务器代码吗?如果是这样,您应该修复它以生成有效的 JSON。

如果您坚持使用这种无效的 JSON 格式,那么您应该使用$.get()or$.ajax()代替$.getJSON()并指定"text"格式:

$.get( dataUrl, dataCallback, 'text' );

现在,您的回调函数将以纯文本形式接收错误的 JSON。因此,您可以在顶部dataCallback删除多余的括号并解析剩余的 JSON 数据:

var data = $.parseJSON( data.match( /^\((.*)\)$/ )[1] );
于 2013-04-28T16:20:41.997 回答