Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符串转换为JSON数组_Javascript_Node.js_Json - Fatal编程技术网

Javascript 字符串转换为JSON数组

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

在函数中,我必须将字符串插入数据数组,这是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
  }
}
如果您在此常量
主体上创建
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