javascript - 将字符串转换为 JSON 数组

标签 javascript node.js json

在函数中,我必须将字符串插入数据数组中,这是 axios 请求调用的一部分:

    var obj1 = JSON.parse(payload);

    axios.request({
        url: inUrl,
        method: "POST",
        auth: {
            username: auth,
            password: pass
        },
        headers: { 'content-type': 'application/json' },
        data: {
            "success": inState,
            "fails": inCount,
            obj1
        }
    }).then(res => {
        //console.log(res);
        console.log("bucket commopn response: "+ res.status);
        return "success";
    }).catch(error => {
        console.log(error);
        console.log("bucket error reponse: " + error.response.status);
        return "error";
    });

有效负载是一个纯字符串,内容为:

{"branch":"CPL-1223"}

这是从一个对象创建的

var payload = JSON.stringify(req.body.responsePayload);

如何将新对象插入

        data: {
            "success": inState,
            "fails": inCount,
            obj1
        }

要调用有效电话吗?因为目前,无论我做什么,如果我进行手动调用,我都会从 Axios 服务器获得无效的正文

        data: {
            "success": inState,
            "fails": inCount,
            "branch":"CPL-1223"
        }

我成功了。我有什么错?

最佳答案

在您的代码中,您尝试执行以下操作:

const obj = { branch: 'CPL-1223' }
const body = {
  data: {
    success: '',
    fails: '',
    obj
  }
}

如果你在这个常量body上创建一个console.log,你会得到这个:

{
  data: {
    success: '',
    fails: '',
    obj: {
      branch: 'CPL-1223'
    }
  }
}

所以错误在于您试图插入整个对象而不扩展它。有关扩展语法的更多信息,您可以在此处阅读 - Spread syntax

所以要使 body 像这样:

{
  data: {
    success: '',
    fails: '',
    branch: 'CPL-1223'
  }
}

您应该使用扩展运算符...,您将得到预期的结果。

const obj = { branch: 'CPL-1223' }
const body = {
  data: {
    success: '',
    fails: '',
    ...obj
  }
}

不要害怕使用console.log!这是非常强大的工具,可以帮助您了解更多。

关于javascript - 将字符串转换为 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58023551/

相关文章:

jquery - ajax上传无法处理JSON响应或给出下载弹出窗口

javascript - 如何使用 javascript 在 IE8 中创建新框架?

javascript - 如何在不影响页面加载速度的情况下加载谷歌广告?

node.js - Sequelize 嵌套关联与两个表

javascript - 将另一个文件中的 JS 对象提取到变量中

Javascript |通过 JSON 的特定键值在 JSON 数组中搜索

javascript - 如何使用 jQuery 填充选项值?

javascript - IE 8 调试器不会在 TypeError 上停止

node.js - ExpressJS仅将中间件应用于路由器中的路由

c# - 对 WCF 服务的 POST 调用出现问题 - 400 BAD REQUEST