data.json文件↑
疑问1:vscode的json文件代码都是对象形式的,可以用字符串的形式吗?
fs.readFile('./data.json',function (err,data) {
var students2 = JSON.parse(data).students /* 疑问2 */
var students4 = JSON.stringify({students3:students2}) /* 疑问3 */
})
疑问2:我看定义说json.parse可以把一个json字符串转换为json对象,但是readfile传进来的data是一个二进制数据,parse也可以把二进制数据转换成对象吗?
疑问3:我看vscode中json文件的对象形式的格式中,键是要加双引号的,为啥上面的students3不用加双引号呢?
不知道我的理解有没有错,求大佬解惑_(:з」∠)_
1.可以是字符串的形式
2.
readFile
方法的第一个参数是文件名,第二个参数是文件编码,第三个参数是回调函数。可用的文件编码包括“ascii”、“utf8”和“base64”。如果没有指定文件编码,返回的是原始的缓存二进制数据。当对象化一个 Buffer 实例时,JSON.parse() 会隐式地调用该 toString(),所以此时的data已经是个字符串。
3.json的属性名需要加双引号,但是 object 的属性名不需要加双引号,
JSON.stringify({students3:students2})
,这里的 students3 是 object