请问json文件可以用字符串的形式保存吗?


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

1、*.json 可以视为普通文件,只是 vscode 自带支持格式化和语法检查,让你能够更好的查看, json 本来就是普通字符串。

2、fs.readFile 的 callback 中 data 的类型可能是字符串或者 <Buffer>,你可以调用 toString 方法来获取到读到的 json 字符串。

图片.png

3、你要区分 JavaScript 对象JSON 这两者。JavaScript 对象的键名是不需要引号的,JSON 是必须的,还有一些其他的细节,比如 JSON 对象不允许最后一个元素后面有逗号等。

var json=require("./data.json")
是不是就可以了呢

以上是 请问json文件可以用字符串的形式保存吗? 的全部内容, 来源链接: utcz.com/a/29248.html

回到顶部