我正在接受关于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));
};
答案 0 :(得分:3)
那里需要JSON.parse(),因为fs操作的输出是一个字符串,我们需要将其转换为一个对象才能正确访问它。其中的数据是一个JSON数组,因此我们可以读取它。在JSON.parse周围添加try catch,因为如果数据不是JSON类型,那么它将导致错误。
答案 1 :(得分:1)
如果文件 notes-data.json 中的JSON包含JSON数组,即某些内容如
[{"one":1}, {"two":2}]
您将从 JSON.parse 方法获取数组。
答案 2 :(得分:0)
如果文件notes-data.json中的JSON包含JSON数组,即某些内容,如
{{1}}