我有一个使用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。这是怎么做的?
答案 0 :(得分:1)
尝试在回调函数中将对象字符串化;
res.json({
type: "success",
code: 200,
data: JSON.stringify(app_list.list_object)
});
JSON stringify将正确格式化它,以便对其进行正确解析