json - 为什么 $.each 说这个 JSON 对象未定义?

标签 json jquery

这是我的 JavaScript:

$.post('foo.php', { request: Request }, function(data)
{
    $.each(data.chats, function(i, chat)
    { ... });
});

这是经过 Firebug 和其他所有内容验证的 JSON,此代码正在接收:

{
    "chats": [
        {
            "chat_id": "22",
            "user_status": "Listening",
            "user_ping": "2010-06-22 15:53:57",
            "messages": [
                {
                    "chat_id": "22",
                    "line_id": "5",
                    "message": "Hello",
                    "timestamp": "15:53"
                }
            ]
        }
    ]
}

...那么为什么当我运行这个时,它不起作用,Firebug 会抛出“对象未定义”的错误,并链接到 jquery.js 第 552 行上的“length = object.length” ,并在我执行 console.log(data.chats) 时显示“未定义”? console.log(data) 显示完整的 JSON 响应,但由于某种原因它不想处理 data.chats...我已将错误范围缩小到“$.each”行。

我有理由确信这是一个非常简单的错误,当有人向我指出这一点时我会捂脸,但此时我完全困惑了。 (是的,“聊天”应该是一个 JSON 数组,以便将来处理多个聊天,与消息相同。)

最佳答案

告诉它您需要 JSON —— 默认情况下它会将响应视为 html。

$.post('foo.php', { request: Request }, function(data) 
{ 
    $.each(data.chats, function(i, chat) 
    { ... }); 
}, 'json');

关于json - 为什么 $.each 说这个 JSON 对象未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3097240/

相关文章:

带有 JSON 对象的 MySql str_date

c# - 在 C# 中使用动态项反序列化 json 对象

Android客户端-服务器通信格式

javascript - 网页上的鼠标行为 – 我不希望标记文本

javascript - 带有百分比的图像大小会减慢网站速度

javascript - 如何在 NodeJS 项目中应用 OO 设计模式?

javascript - 按字母顺序组织 JSON 数据

php - Symfony2 重新提交表单时转发

javascript - 进行页面刷新时防止显示未设置样式的页面

javascript - BxSlider maxslide 和 minslide