$每个仅用于json中的特定数组

时间:2013-04-23 19:29:05

标签: jquery json

我正在使用JSON制作一个listview,并且已成功使用它,但是...如果有可能将其他数据发送到我的页面,我正在徘徊,这是“不在数组中”,具有相同的JSON调用而没有把它们穿过$ each?

这是我的JSON:---编辑---

[{"menutime":"2013-04-23 19:23:42"},{"list":"menu1"},{"list":"Menu2"},{"list":"Menu3"}]

正如你所看到的,我有3个“列表”,我进入这样的列表视图:

dataCallback = function (data) {
    var content = [];
    // var now = data.menutime; // HERE I WANT THE MENUTIME TO BE PUT INTO A VARIABLE //
    $.each(data, function (i, val) {
        content.push(val.list); // GETTING ALL THE MENUS //
    });
    $('#games').html(content.join('')).listview('refresh');
}

我没有得到菜单时间...我该怎么做?

提前致谢: - )

----------------编辑----------------

我已经像Kevin B建议的那样尝试了这个,但我无法让它工作?!

dataCallback = function(data){
    alert("Date: "+data.menutime);

    //var content = data.list.join("");
    //var now = data.menutime; // HERE I WANT THE MENUTIME TO BE PUT INTO A VARIABLE //

    $('#userbar').html(data.profile); // FETCHING USERS DATA FOR PROFILEBAR //
    //$('#games').html(content).listview('refresh');
}

在我的警报中,我得到“未定义”。

我的“杰森”看起来像这样:

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

为什么这不起作用的任何想法?

3 个答案:

答案 0 :(得分:2)

如果您可以修改服务器返回的内容,请使其返回结构更合适的数据。

{ 
    "menutime": "2013-04-23 19:23:42",
    "list": ["menu1","menu2","menu3"]
}

现在您的回调可以更简单:

dataCallback = function (data) {
    var content = data.list.join("");
    var now = data.menutime; // HERE I WANT THE MENUTIME TO BE PUT INTO A VARIABLE //
    $('#games').html(content).listview('refresh');
}

答案 1 :(得分:0)

您无法访问菜单时间 -

content.push(val.menutime);

你的json应该是这样的 -

 [{"menutime":"2013-04-23 19:23:42"},{"list":"menu1"},{"list":"Menu2"},{"list":"Menu3"}]

答案 2 :(得分:0)

您可以将数组包装在对象中

dataCallback = function (data) {
    var content = [];
    // var now = data.menutime; // HERE I WANT THE MENUTIME TO BE PUT INTO A VARIABLE //
    $.each(data, function (i, val) {
        content.push(val.list); // GETTING ALL THE MENUS //
    });
    var sendData = {
          content :content ,
          menutime:now
    };
    $('#games').html(sendData .content.join('')).listview('refresh');
    ///use sendData.menutime to get menutime
}