JSON foreach不工作

时间:2013-09-27 01:52:16

标签: javascript jquery json

我有以下JSON代码:

{
    "chat": [
        {
            "username": "demo",
            "text": "hi man",
            "time": "1380167419"
        },
        {
            "username": "admin",
            "text": "hi",
            "time": "1380167435"
        },
        {
            "username": "demo",
            "text": "this works flawless now.",
            "time": "1380167436"
        },
        {
            "username": "demo",
            "text": "we basically done/",
            "time": "1380167443"
        }
    ]
}

当我跑步时:

var codes = JSON.parse(history); //history is the above JSON.
$.each(codes, function(key, value){
alert(value.chat.username);
});

它没有提醒任何事情并一直告诉我value.chat.username未定义...

我哪里做错了?

3 个答案:

答案 0 :(得分:2)

您不需要解析JSON。它已经是一个JSON对象

$.each(history.chat, function(key, value){
alert(value.username);
});

您还必须遍历聊天数组并正确引用其项目。

答案 1 :(得分:1)

这次你有一个value.chat中定义的对象数组。在查看username之前,您需要选择一个数组元素。正确的表单是value.chat[n].username,其中n是数组中的索引。如果要遍历chat对象中的数组,则需要执行此操作:

$.each(codes.chat, function(key, value){
  alert(value.username);
});

请注意,我们现在正在迭代chat,因此我们可以直接处理每个chat元素中的属性。

答案 2 :(得分:0)

那是......因为.chat没有定义

var codes = JSON.parse(history); //history is the above JSON.
$.each(codes.chat, function(key, value){
    alert(value.username);
});