首页 > 解决方案 > 使用 node.js 在 JSON 文件中添加嵌套数组

问题描述

我对 Javascript 和 nodejs 还很陌生。我想要一个 JSON 文件(results.json),其格式类似于:

开始于:

{
  "name":"John",
  "task":[]
}

然后最终变成这样的嵌套数组:

{
  "name":"John",
  "task":[ ["task1","task2"], ["task3", "task4"] ]
}

每次完成某些事情时(在我的情况下,当按下按钮提交表单时),我想向“任务”数组推送一个新的任务列表(总是大小为 2)。

例如,在另一个“动作”之后,JSON 文件将如下所示:

{
  "name":"John",
  "task":[ ["task1","task2"], ["task3", "task4"] , ["task5", "task6"] ]
}

注意:"task(1,2,...,6) 只是作为示例,这些将​​是与表单提交对应的其他字符串。

这是我目前在服务器端文件中的内容:

var fs = require('fs')

app.post("/addtask", function(req, res) {
fs.readFile('results.json', function (err, data) {
    var json = JSON.parse(data)
    var newTask1 = req.body.newtask1
    var newTask2 = req.body.newtask2

    //WHAT DO I PUT HERE

    fs.writeFile("results.json", JSON.stringify(json))
})
});

如果我的语法错误或者我对 JSON 文件如何工作的想法有误,请纠正我。

标签: javascriptarraysnode.jsjson

解决方案


只需将数据作为数组推送

var resObj= {
  "name":"John",
  "task":[]
}

var newTask1 = "task1";
var newTask2 = "task2";

resObj.task.push([newTask1,newTask2]);

console.log(resObj);


推荐阅读