类型错误';未定义';不是Javascript/Jquery JSON解析器中的对象

类型错误';未定义';不是Javascript/Jquery JSON解析器中的对象,javascript,jquery,arrays,Javascript,Jquery,Arrays,Javascript/JQuery noob在这里,很抱歉 我使用.ajax获取JSON对象,然后使用下面的代码循环并将字段附加到页面中。简单 $.each(data, function(i, item) { $("#div-ipos").append( "<img src=" + item.user.avatar_small_url + ">&nbsp;" + item.user.first_name + "<

Javascript/JQuery noob在这里,很抱歉

我使用
.ajax
获取JSON对象,然后使用下面的代码循环并将字段附加到页面中。简单

$.each(data, function(i, item) {
    $("#div-ipos").append(
        "<img src=" + item.user.avatar_small_url + ">&nbsp;"
        + item.user.first_name 
        + "<hr /><br />"
    );
});
$。每个(数据、功能(i、项){
美元(“#部门IPO”)。追加(
" "
+item.user.first\u名称
+“

” ); });
它工作正常,输出与预期一样,并将化身路径传递到
标记中

但是,我得到以下错误:

TypeError:“未定义”不是对象(正在评估“item.user.avatar\u small\u url”)


我需要对该变量做什么才能使其在此上下文中正常运行?

听起来像是item.user未定义,或者item未定义。你检查过物品的价值了吗?我认为您希望它是一个不存在的东西。

使用
console.log(数据)在您的
$之前。每个
检查其中的内容。服务器响应很可能包含一个没有用户的额外数组元素。因此JSON可能看起来像:

[{"user":{"avatar_small_url":"foo","first_name":"bar"}},
 {"user":{"avatar_small_url":"bar","first_name":"foo"}},
 {"something_other_than_user":9000}]

查看最后一个数组元素如何没有“用户”。如果您有权访问服务器代码,您可能希望修改它,以便始终有一个用户,或者您可以修改Javascript,以便在用户字段不存在时,它可以提前退出,返回类似以下内容:
If(typeof item.user=='undefined')

在提取之前,使用if条件检查该数组中是否存在密钥,如下所示

if( key in User)
{
    User[key]
}

使用
item.user
而不是
item.sender
?后者似乎是
未定义的
@FrédéricHamidi道歉-更正,使用了错误的复制/粘贴。请忽略!:)JSON对象中的某些项是否缺少其
user
属性?在这种情况下,您必须在循环中测试这种情况。您是否尝试过console.log(项)?它应该给出对象的确切层次结构。好吧,奇怪的是,现在我在控制台中得到了“找不到变量项”,但选项[path to JSON]资源加载失败-但我可以使用CURL获得路径,并看到返回的JSON!啊!哦,我知道每一个是如何工作的,但是你需要检查物品的价值,以确保你知道它的价值。很明显,这是您期望的内容与您得到的内容之间的不匹配。我如何将“item”的内容输出到控制台以进行检查?情况是这样的-两者都在“item”中的“user”中,但在下一级还有其他字段,而不是在“user”中。这对item.user.avatar\u small\u url有什么影响?@evilswan
console.log(数据)有什么影响输出?显示:“ReferenceError:找不到变量:数据”@eviswan在服务器端修复之后是什么?@eviswan如果看到从服务器返回的json,那将非常有帮助。如果它很小,就把它贴在这里,如果它很大,试着制作一个粘贴箱:并将我链接到它。