-2

我有以下 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 未定义...

我哪里做错了?

4

3 回答 3

2

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

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

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

于 2013-09-27T01:53:51.143 回答
1

这次你有一个对象数组定义在value.chat. 您需要先选择一个数组元素,然后才能查看username. 正确的形式是value.chat[n].usernamen数组中的索引在哪里。如果要遍历chat对象中的数组,则需要执行以下操作:

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

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

于 2013-09-27T02:03:00.383 回答
0

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

var codes = JSON.parse(history); //history is the above JSON.
$.each(codes.chat, function(key, value){
    alert(value.username);
});
于 2013-09-27T01:53:55.880 回答