Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
如何在NodeJS/JavaScript中将文本格式的JSON数组转换为JSON对象数组?_Javascript_Arrays_Node.js_Json - Fatal编程技术网

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

如何在NodeJS/JavaScript中将文本格式的JSON数组转换为JSON对象数组?,javascript,arrays,node.js,json,Javascript,Arrays,Node.js,Json,我使用Node.JS和ExpressJS创建了一个RESTAPI。 我需要将一个JSON数组从前端接收到RESTAPI中 api.post('/save_pg13_app_list', function (req, res) { var app_list = { list_object: req.body.list_object }; console.log(app_list.list_object); re

我使用Node.JS和ExpressJS创建了一个RESTAPI。 我需要将一个JSON数组从前端接收到RESTAPI中

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\u对象是我从前端得到的JSON数组

这是任务的POST端点

这是我收到的数据对象:

{
 list_object :  "[{name:\"chanaka\",\"code\":10},{name:\"shashini\",code:19}]" 
}
当我在restapi中获取这个
list\u对象时,它是一个字符串对象。
现在我需要将其解析为JSON。
因此,我使用以下代码将其转换为JSON

var json_array = JSON.parse(app_list.list_object);
但我得到了一个错误:

POST/api/管理\控制\管理/保存\ pg13\应用程序\列表500 0.936 ms-1212 SyntaxError:JSON中位置2处的意外标记n at Object.parse(本机) at/home/chanaka/WebstormProjects/postreapi/app/routes/admin_control.js:210:26 在Layer.handle[作为handle_请求](/home/chanaka/WebstormProjects/postreapi/node_modules/express/lib/router/Layer.js:95:5) 下一步(/home/chanaka/WebstormProjects/postreapi/node_modules/express/lib/router/route.js:131:13) 在Route.dispatch(/home/chanaka/webstorprojects/postreapi/node_modules/express/lib/router/Route.js:112:3) 在Layer.handle[作为handle_请求](/home/chanaka/WebstormProjects/postreapi/node_modules/express/lib/router/Layer.js:95:5) at/home/chanaka/webstoreprojects/postreapi/node_modules/express/lib/router/index.js:277:22 在Function.process_参数(/home/chanaka/webstorprojects/postreapi/node_modules/express/lib/router/index.js:330:12) 下一步(/home/chanaka/webstoreprojects/postreapi/node_modules/express/lib/router/index.js:271:10) 位于Function.handle(/home/chanaka/webstorprojects/postreapi/node_modules/express/lib/router/index.js:176:3)


我需要做的就是,将
[{name:“chanaka”,code:10},{name:“shashini”,code:19}]
类型的字符串数组转换为JSON。这样做的方法是什么

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

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

JSON stringify将正确格式化它,以便正确解析它

在执行
解析
之前,将
app\u list.list\u object的值记录到控制台。最好将其输出为
console.log(JSON.stringify(app\u list.list\u object))
。看起来它是未定义的。@Chanaka De Silva您的json无效。键应该有引号。请从您的api@trincot错误显示位置2处JSON中的
意外标记n
。所以它不是未定义的,对吗?是的,那么@MadhawaPriyashantha就正确了。您没有发送有效的JSON。这就是你问题的原因<代码>名称
必须位于双引号之间。这也意味着您正在通过字符串操作构建JSON(自己构建)。这是一种不好的做法,导致了这种情况。使用合适的JSON构建器。我在你的问题中编辑了他的输出……而且,我注意到你的问题中有一个术语混淆。您将讨论如何将字符串“解析为JSON”。但是JSON是文本!从解析中得到的是(如果有效的话)一个JavaScript对象(不要称之为JSON)。