显示json数据控制台日志

时间:2020-07-24 08:25:25

标签: javascript json

我在javascript中遇到问题,我想在status中显示响应console log成功或错误,但是我的代码无法正常工作。

我该怎么办?有人帮我吗?

我的代码

...
                client.request.post(url, options)
                .then(function (data) {
                    console.log(data);   
                    console.log(data.response.status);   //undefined
                if (data.status == 200) {
                    console.log("success",data);                    
                }
                }).catch(err => {
                console.log("Error", err)
}

控制台日志

{status: 200, headers: {…}, response: "{"status":"success","data":"User settings updated."}", attempts: 1}

{status: 200, headers: {…}, response: "{"status":"error","data":"Number of Agents cannot be exceed."}", attempts: 1}

3 个答案:

答案 0 :(得分:0)

基于

{status: 200, headers: {…}, response: "{"status":"success","data":"User settings updated."}", attempts: 1}

您将在响应字段中获得一个包含JSON作为字符串的响应,并且您需要对其进行解析以获取真实对象:

...then(function (data) {
    data.response = JSON.parse(data.response);
    console.log(data);   
    console.log(data.response.status);
});

答案 1 :(得分:0)

您的响应数据中有错误。 应该是这样的:

{status: 200, headers: {…}, response: {"status":"success","data":"User settings updated."}, attempts: 1}

请验证键“ response”的值。

如果“ response”的值不是json对象,则使用JSON.parse(data.response)

对其进行解析

答案 2 :(得分:0)

您的答复是:

{
  "status": 200,
  "headers": {},
  "response": "{\"status\":\"success\",\"data\":\"User settings updated.\"}",
  "attempts": 1
}

所以data.response是一个字符串,而不是一个对象。

您可以使用:

console.log(JSON.parse(data.response).status);

代替:

console.log(data.response.status);