我正在上udemy的课程,我真的很困惑当数组应该是一个对象时它是如何notes = JSON.parse(notesString)的(对吧?)因为json.parse使它成为一个对象。

var addNote = (title, body) => {
  var notes = []; // Create empty array
  var note = { // Fetch user input
    title,
    body
  };
  try {
    var notesString = fs.readFileSync("notes-data.json"); //  Get current notes
    notes = JSON.parse(notesString); // convert current notes into object
    console.log("try:", notes.constructor)
  }catch(e){

  }
  console.log(notes)
  notes.push(note);
  fs.writeFileSync("notes-data.json", JSON.stringify(notes));
};

最佳答案

这里需要json.parse(),因为fs操作的输出是一个字符串,我们需要将其转换为一个对象才能正确访问它。里面的数据是一个json数组,因此我们可以读取它。在json.parse周围添加try catch,因为如果数据不是json类型,则会导致错误。

关于javascript - Javascript Node.js JSON.parse数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48414495/

10-14 13:23