将JSON.parse()返回类型转换为对象数组

时间:2018-11-03 10:19:25

标签: javascript node.js

我已经定义了一个名为note-data.json的文件,其中包含json数据。在以下代码中,声明了一个称为notes的数组类型变量。我要实现的是程序读取json文件并将其保存在noteString变量中,然后使用noteString中的JSON.parse()创建对象数组并将其放入notes数组。因此,我可以将新对象添加到json文件中。但是,当程序到达note.push()行时,它会抱怨,因为我认为注释的类型已变为字符串,并且未为字符串定义push。我该如何解决这个问题?

请忽略以下事实:如果未提供json文件,程序将崩溃。

我的代码:

const addNote = (title, body) => {
  let notes= [];
  const note = {

    title,
    body
  };

  const notesString = fs.readFileSync('node-data.json', 'utf8');
  notes = JSON.parse(notesString);

  notes.push(note);
  fs.writeFileSync('node-data.json', JSON.stringify(note));
}

文件note-data.json:

{"title":"Greeting","body":"Hello"}

1 个答案:

答案 0 :(得分:0)

我认为您在这里摸索变量。据我了解-您想从文件中读取JSON并将该JSON附加到数组,对吗?以下代码将帮助您做到这一点

const addNote = (title, body) => {

  let notes= []; //Declare an array
  const note = JSON.parse(fs.readFileSync('node-data.json', 'utf8')); //read and parse file contents
  notes.push(note); //Append new JSON to your array

  //This line below appears to have no purpose ??
  fs.writeFileSync('node-data.json', JSON.stringify(note));
}