下面,您可以看到这两个日志的输出。第一行代码清楚地显示了我试图访问的属性的完整对象,但在下一行代码中,我无法使用配置访问它。Col_id_3(见截图中的“undefined”?)有人能解释一下吗?我也可以访问除field_id_4之外的所有其他属性。

console.log(config);
console.log(config.col_id_3);

这就是这些行在控制台中打印的内容


当前回答

关于这个问题,我已经尝试了很多答案 终于发现发生了什么事。

虽然对象在console.log(foo)上打印,但只有在使用new foo()时才会生成get和set方法。 你必须用平面js对象初始化实例

请看:https://stackoverflow.com/a/41153231/5954248

其他回答

检查对象内部是否有一个对象数组。我有一个类似的问题与JSON:

    "terms": {
        "category": [
            {
                "ID": 4,
                "name": "Cirugia",
                "slug": "cirugia",
                "description": "",
                "taxonomy": "category",
                "parent": null,
                "count": 68,
                "link": "http://distritocuatro.mx/enarm/category/cirugia/"
            }
        ]
    }

我试图从“类别”访问“名称”键,我得到了未定义的错误,因为我正在使用:

var_name = obj_array.terms.category.name

然后我意识到它有方括号,这意味着它在category键中有一个对象数组,因为它可以有多个category对象。因此,为了获得'name'键,我使用了这个:

var_name = obj_array.terms.category[0].name

这就成功了。

也许现在回答这个问题已经太晚了,但我希望有同样问题的人能像我一样在找到解决方案之前找到这个答案:)

检查是否在控制台中应用了任何筛选器。它发生在我在chrome控制台。

如果你使用的是TYPESCRIPT和/或ANGULAR,它可能是这样的!

.then((res: any) => res.json())

设置响应类型为任何为我修复了这个问题,我无法访问响应上的属性,直到我设置res: any

属性“_body”在类型“Response”上不存在

我也遇到了这个问题,长话短说,我的API返回的是字符串类型,而不是JSON。所以当你把它打印到日志中时,它看起来完全一样,但是每当我试图访问属性时,它给了我一个未定义的错误。

火守则:

     var response = JsonConvert.DeserializeObject<StatusResult>(string Of object);
     return Json(response);

之前我刚回来

return Json(string Of object);

好吧,我经过了一个让我对新循环感到害怕的情况,感谢我的老派。

forEach循环和for(a in obj)循环都会产生错误的信息和错误,这取决于对象的类型和属性!!

老的好

for(var i=0, max=arr.length; i<max; i++)
{ //Properties available correctly!

   arr[i].property        //both work inside old school loop!
   arr[i][property]  
}