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

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

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


当前回答

我没有得到MongoDB错误消息在抛出错误在我的NodeJS API响应,所以我做了以下工作

// It was not working
console.log(error.message) // prints the error
let response = error;
// message property was not available in the response.
/* 
{
  "status": "error",
  "error": {
    "driver": true,
    "name": "MongoError",
    "index": 0,
    "code": 11000,
    "keyPattern": {
      "event_name": 1
    },
    "keyValue": {
      "event_name": "followup"
    }
  }
}
*/
// so I did this
let message = error.message;
let response = JSON.parse(JSON.stringify(error));
response.message = message;
// message property is now available in the response.
/* 
{
  "status": "error",
  "error": {
    "driver": true,
    "name": "MongoError",
    "index": 0,
    "code": 11000,
    "keyPattern": {
      "event_name": 1
    },
    "keyValue": {
      "event_name": "followup"
    },
    "message": "E11000 duplicate key error collection: mycollections.notificationevents index: event_name_1 dup key: { event_name: \"followup\" }"
  }
}
*/

其他回答

检查对象内部是否有一个对象数组。我有一个类似的问题与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

这就成功了。

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

我刚刚遇到了由CSV -parser从MS Excel生成的CSV文件生成的对象的问题。我能够访问除第一个属性之外的所有属性-但如果我使用console.log编写整个对象,它将显示ok。

结果UTF-8 CSV格式在开头插入3个字节(ef bb bf),对应于一个不可见的字符-这被包括在CSV -parser的第一个属性头中。解决方案是使用非utf选项重新生成CSV,这消除了不可见字符。

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

我也遇到了同样的问题,但上面的解决方案对我来说都不奏效,之后我感觉就像是在猜测。但是,在setTimeout函数中包装创建对象的代码对我来说是有用的。

setTimeout(function() {
   var myObj = xyz; //some code for creation of complex object like above
   console.log(myObj); // this works
   console.log(myObj.propertyName); // this works too
});

我今天在这个问题上很纠结,我想我会留下我的解决方案。

我通过ajax获取一个数据对象,就像这样: {“常量”:{“value1”:“x”,“value2”:“y”},“国际化”{“data1”:“x”,“data2 ": " y "}}

假设这个对象在一个名为data的变量中。每当我引用数据时。i18n没有定义。

Console.log (data)显示了预期的对象 console.log(Object.keys(data))显示["constants","i18n"] 将i18n重命名为inter并没有改变任何东西 我甚至尝试切换数据,使“i18n”成为第一个对象 移动代码以确保完全设置了对象,ajax承诺也没有问题。

没有什么帮助…然后在服务器端,我将数据写入php日志,它揭示了这一点:

{“常量”:{“value1”:“x”,“value2”:“y”},“\ u045618n”{“data1”:“x”,“data2 ": " y "}}

索引键中的“i”实际上是一个u0456(西里尔字母i)。这在我的php编辑器或浏览器控制台日志中不可见。只有php日志显示这个…这是个棘手的问题……