Javascript 字符串转换为JSON数组
在函数中,我必须将字符串插入数据数组,这是axios请求调用的一部分:Javascript 字符串转换为JSON数组,javascript,node.js,json,Javascript,Node.js,Json,在函数中,我必须将字符串插入数据数组,这是axios请求调用的一部分: var obj1 = JSON.parse(payload); axios.request({ url: inUrl, method: "POST", auth: { username: auth, password: pass }, headers: { 'content-typ
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
}
}
如果您在此常量主体上创建console.log
,您将得到以下结果:
{
data: {
success: '',
fails: '',
obj: {
branch: 'CPL-1223'
}
}
}
因此,错误在于,您试图插入整个对象而没有将其展开。有关扩展语法的更多信息,请参见此处-
所以要让身体像这样:
{
data: {
success: '',
fails: '',
branch: 'CPL-1223'
}
}
您应该使用扩展运算符…
,您将得到预期的结果
const obj = { branch: 'CPL-1223' }
const body = {
data: {
success: '',
fails: '',
...obj
}
}
不要害怕使用控制台.log
!这是一个非常强大的工具,可以帮助您了解更多
data: {
"success": inState,
"fails": inCount,
obj1
}
在此代码段中,您将obj1
作为嵌套子对象附加到data
对象。但您的用例是将obj1
的内容插入数据
对象中。为此,您可以使用新的(…
)
您可以使用下面的代码片段修复代码-
data: {
"success": inState,
"fails": inCount,
...obj1
}
尝试在数据中使用…obj1
,而不是仅使用obj1
。