Javascript nodejson.parse数组
我正在学习udemy课程,我真的很困惑Javascript nodejson.parse数组,javascript,json,node.js,Javascript,Json,Node.js,我正在学习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 notesSt
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));
};
如果文件notes-data.JSON中的JSON包含JSON数组,例如
[{"one":1}, {"two":2}]
var data = "[{"one":1}, {"two":2}]";
var result = JSON.parse(data);
console.log(result)
您将从JSON.parse方法获得数组。如果notes-data.JSON文件中的JSON包含JSON数组,例如
[{"one":1}, {"two":2}]
var data = "[{"one":1}, {"two":2}]";
var result = JSON.parse(data);
console.log(result)
您将从JSON.parse方法获得数组。JSON.parse()是必需的,因为fs操作的输出是一个字符串,我们需要将其转换为对象才能正确访问它。其中的数据是一个JSON数组,因此我们可以读取它。在JSON.parse周围添加try catch,因为如果数据不是JSON类型,则会导致错误。JSON.parse()是必需的,因为fs操作的输出是一个字符串,我们需要将其转换为对象才能正确访问它。其中的数据是一个JSON数组,因此我们可以读取它。在JSON.parse周围添加try-catch,因为如果数据不是JSON类型,则会导致错误。如果文件notes-data.JSON中的JSON包含JSON数组,例如
[{"one":1}, {"two":2}]
var data = "[{"one":1}, {"two":2}]";
var result = JSON.parse(data);
console.log(result)
如果文件notes-data.JSON中的JSON包含JSON数组,例如
[{"one":1}, {"two":2}]
var data = "[{"one":1}, {"two":2}]";
var result = JSON.parse(data);
console.log(result)
从这段代码看,它就像一个数组。您自己评论说这是一个数组:
var notes=[];//创建空数组
“因为JSON.parse使它成为一个对象”——它不是JSON.parse
返回与最初相同类型的值。虽然从技术上讲,数组是javascript.JSON.parse中的对象,但只需将JSON字符串解析为JSON即可。它可以是一个对象数组,也可以是一个简单的对象。您自己评论说这是一个数组:var notes=[];//创建空数组
“因为JSON.parse使它成为一个对象”——它不是JSON.parse
返回与最初相同类型的值。虽然从技术上讲,数组是javascript.JSON.parse中的对象,但只需将JSON字符串解析为JSON即可。它可以是对象数组或简单对象。这是正确的答案。要记住的关键一点是,您正在执行的fs操作返回一个//字符串//,而不是一个对象(或数组)。谢谢您,现在它有意义了。这是正确的答案。要记住的关键一点是,您正在执行的fs操作返回的是//字符串//,而不是对象(或数组)。谢谢,现在这很有意义。请添加一些解释编辑您的答案,避免只使用代码的答案请添加一些解释编辑您的答案,避免只使用代码的答案