如何使用console.log打印JSON

时间:2018-10-17 09:03:58

标签: ajax reactjs typescript

我正在用php laravelreact.js编写程序。但是我对这些很陌生。无论如何,在react中,我正在使用ajax发送API请求。

像这样:

const sendquery = {
    "async": true,
    "crossDomain": true,
    "url": url,
    "method": "POST",
    "headers": {
        "Authorization": "Bearer " + tkid,
        "Accept": "application/json",
        "Content-Type": "application/json",
    },
    "processData": false,
    "data": query
};

$.ajax(sendquery).done(function (response) {
    console.log('Survey Request :' + response);
});

当我console.log()时,还有另一个API请求可以很好地打印,因为它们是数组类型。但这必须是json。我用 Postman 测试了API,一切正常。但是我仍然有这样的输出:

Survey Request :[object Object]

任何人都可以帮忙吗?

7 个答案:

答案 0 :(得分:4)

您可以尝试使用JSON.stringify(response),但请注意,它不适用于所有类型,例如,请参见JSON.stringify doesn't work with normal Javascript array

答案 1 :(得分:2)

除了@Beris Demiray所写的内容之外,另一个选择是写:

console.log('Survey Request :', response);

意味着将对象作为第二个参数放入日志。

这将为您提供一个可以在调试器中打开的对象。 之所以使用此选项更好,是因为JSON.stringify不会对所有对象进行字符串化,因此您可以查看所有对象。

答案 2 :(得分:1)

使用 JSON.parse 函数,如下所示:

JSON.parse(response, null, 2)

答案 3 :(得分:1)

要获取json

console.log(JSON.stringify(response));

获取结构化JSON

console.log(JSON.stringify(response, undefined, 2));

答案 4 :(得分:1)

像这样使用console.dir(object:any)->

$.ajax(sendquery).done(function (response) {
    console.dir(response);
});

答案 5 :(得分:1)

最好的方法是在第一个参数中传递显示字符串,在第二个参数中传递对象

 console.log('Survey Request', response);

enter image description here

答案 6 :(得分:1)

虽然我承认上述所有答案,但必须指出为什么您似乎在控制台上会得到该结果。

执行此操作时:

console.log('Survey Request :' + response);

您基本上是在尝试将原始值'Survey Reguest :'与作为对象的复杂值response连接起来。 Javascript无法将对象response转换为原始值。通过简单地将+替换为,表示您将response对象作为单独的参数发送。然后,JavaScript将参数分别记录到控制台。