从jQuery JSON获取特定数据到变量

时间:2013-04-28 15:01:52

标签: javascript jquery json

我几乎尝试过所有事情,但无法弄清楚这一点?

我正在使用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"}])

希望得到帮助。

提前致谢: - )

1 个答案:

答案 0 :(得分:1)

为什么服务器添加()?这使得JSON无效,被$.getJSON()拒绝。

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

SyntaxError: Unexpected token (

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

如果您坚持使用此无效的JSON格式,则应使用$.get()$.ajax()代替$.getJSON()并指定"text"格式:

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

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

var data = $.parseJSON( data.match( /^\((.*)\)$/ )[1] );