【问题标题】:console.log(result) returns [object Object]. How do I get result.name? [duplicate]console.log(result) 返回 [object Object]。我如何获得 result.name? [复制]
【发布时间】:2020-01-09 08:54:31
【问题描述】:

由于console.log(result),我的脚本返回[object Object]

谁能解释一下如何让console.logresult 返回idname

$.ajaxSetup({ traditional: true });

var uri = "";

$("#enginesOuputWaiter").show();    
$.ajax({
    type: "GET",
    url: uri,
    dataType: "jsonp",
    ContentType:'application/javascript',
    data :{'text' : article},
    error: function(result) {
        $("#enginesOuputWaiter").hide();
        if(result.statusText = 'success') {
            console.log("ok");
            console.log(result);
        } else {
            $("#enginesOuput").text('Invalid query.');
        }
    }
});

【问题讨论】:

  • 你试过解析吗? [object Object] 只是一个字符串表示,而不是对象实际的样子。
  • 该网络服务似乎返回 JSON 而不是 JSONP,因此您应该更改您的 dataType。这可能也是您的 error 处理程序被调用的原因,在这种情况下您很难获得成功的result
  • 您的回复中有 BOM 符号:joxi.ru/vAWVVbh1k34N2W 所以修复您的 php 代码,清理不必要的 utf8 编码 BOM
  • result.statusText = 'success' 应该是 result.statusText === 'success'。否则,您将“成功”分配给结果对象。
  • 试试console.log("result: ", result);

标签: javascript jquery arrays json ajax


【解决方案1】:

尝试添加JSON.stringify(result) 将JS Object 转换为JSON 字符串。

从您的代码中,我可以看到您将结果记录在 error 中,如果 AJAX request fails 则调用它,所以我不确定您将如何访问 id/name/etc。然后(您正在错误条件下检查是否成功!)。

请注意,如果您使用 Chrome 的控制台,您应该能够浏览对象,而无需对 JSON 进行字符串化,这样更易​​于调试。

【讨论】:

  • 制定此标准做法的请愿书在哪里。 [object Object]是最没用的日志语句
  • 也可以在nodejs中使用console.debug(obj)console.dir(obj)获取结果
【解决方案2】:

使用console.log(JSON.stringify(result)) 获取字符串格式的 JSON。

编辑:如果您的意图是从结果对象中获取 id 和其他属性,并且您想在控制台中查看它是否存在,那么您可以使用 hasOwnProperty 检查并访问该属性(如果确实存在):

var obj = {id : "007", name : "James Bond"};
console.log(obj);                    // Object { id: "007", name: "James Bond" }
console.log(JSON.stringify(obj));    //{"id":"007","name":"James Bond"}
if (obj.hasOwnProperty("id")){
    console.log(obj.id);             //007
}

【讨论】:

  • 这个庄园也可以获取json风格的log 'console.log('connection : %j', myObject);'
  • 嗨,我以为我也在尝试做同样的事情,但我不断收到 ERROR TypeError: Converting circular structure to JSON 。这是因为我没有在对象上应用此方法吗?
  • @GelSisaed 如果您的变量的任何属性是对该变量的引用,就会发生这种情况。请参考this postthis one
  • 是的 stringifying 给了我"[object Object]" 就像它在嘲笑我一样。
  • 也可以在nodejs中使用console.debug(obj)或者console.dir(obj)获取结果
猜你喜欢
  • 2021-11-27
  • 2020-03-25
  • 2021-05-30
  • 2020-04-12
  • 2017-05-16
  • 1970-01-01
  • 2020-05-24
相关资源
最近更新 更多