如何在NodeJS / JavaScript中将文本格式的JSON数组转换为JSON对象数组?

时间:2019-03-02 16:10:41

标签: javascript arrays node.js json

我有一个使用Node.JS和ExpressJS创建的REST API。 我需要从FrontEnd接收一个JSON数组到我的REST API中。

api.post('/save_pg13_app_list', function (req, res) {
        var app_list = {
            list_object: req.body.list_object
        };
        console.log(app_list.list_object);
        res.json({ type: "success", code: 200, data: app_list.list_object });
    });

这个list_object是我从前端获得的JSON数组。

这是任务的POST端点。

  

http://localhost:7000/api/admin_control_manage/save_pg13_app_list

这是我正在接收的数据对象:

{
 list_object :  "[{name:\"chanaka\",\"code\":10},{name:\"shashini\",code:19}]" 
}

当我在REST API中使用此list_object时,它是一个字符串对象。 现在,我需要将其解析为JSON。 因此,我使用以下代码将其转换为JSON。

var json_array = JSON.parse(app_list.list_object);

但是我收到此错误:

  

POST / api / admin_control_manage / save_pg13_app_list 500 0.936 ms-1212   SyntaxError:JSON中位置2处的意外令牌n       在Object.parse(本机)       在/home/chanaka/WebstormProjects/PostureAPI/app/routes/admin_control.js:210:26       在Layer.handle [作为handle_request](/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/layer.js:95:5)       在下一个(/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/route.js:131:13)       在Route.dispatch(/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/route.js:112:3)       在Layer.handle [作为handle_request](/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/layer.js:95:5)       在/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/index.js:277:22       在Function.process_params(/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/index.js:330:12)       在下一个(/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/index.js:271:10)       在Function.handle(/home/chanaka/WebstormProjects/PostureAPI/node_modules/express/lib/router/index.js:176:3)

我需要做的就是将[{name:"chanaka",code:10},{name:"shashini",code:19}]类型的字符串数组转换为JSON。这是怎么做的?

1 个答案:

答案 0 :(得分:1)

尝试在回调函数中将对象字符串化;

res.json({ 
    type: "success", 
    code: 200, 
    data: JSON.stringify(app_list.list_object) 
});

JSON stringify将正确格式化它,以便对其进行正确解析