在函数中,我必须将字符串插入数据数组中,这是 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/