JSON 全称为“JavaScript Object Notation”,是当前最流行的一种轻量级的数据交换格式,用来存储和传输数据,通常服务器端与客户端在进行交互时就是使用 JSON 格式的数据。
通俗一点理解就是json在被JavaScript读取到内存当中之后,可以像JavaScript使用变量一样使用json中的内容。
读取并解析json文件
JavaScript提供了eval()
与JSON.parse()
两种方法来解析json文件。通常我们不去使用eval()
方法,因为他会执行json文件中的代码,存在非常大的安全风险,尤其是解析第三方json文件的时候。
所以一般会使用JSON.parse()
方法来解析json文件
根据文档中的方读取一个json文件,然后输出内容
const fs = require('fs')
fs.readFile('config.json', 'utf8', (err, data) => {
if (err) {
console.error(err);
return
}
console.log(data)
})
尝试使用JSON.parse()
方法解析json文件
const fs = require('fs')
fs.readFile('config.json', 'utf8', (err, data) => {
if (err) {
console.error(err);
return
}
console.log(data)
let obj = JSON.parse(data)
console.log(obj["telemetry.machineId"])
console.log(obj.windowSplash.baseTheme)
console.log(obj.windowSplash.colorInfo.foreground)
})
Success
写入json文件
尝试修改json文件的内容
obj.windowSplash.colorInfo.foreground = "#FFFFFF";
obj.windowSplash.baseTheme = "vs-light";
使用JSON.stringify()
方法将变量转换为json文本,再写入文本
const fs = require('fs');
fs.readFile('config.json', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
// console.log(data)
let obj = JSON.parse(data);
console.log(obj["telemetry.machineId"]);
console.log(obj.windowSplash.baseTheme);
console.log(obj.windowSplash.colorInfo.foreground);
obj.windowSplash.colorInfo.foreground = "#FFFFFF";
obj.windowSplash.baseTheme = "vs-light";
obj = JSON.stringify(obj);
fs.writeFile('config.json', obj, err => {
if (err) {
console.error(err);
return;
}
})
})
Success!!!
这一种方法,将json读取到内存之后,虽然只进行了少许修改,但在写入的时候却将整个文件进行覆写,不知道这样会不会带来一些弊端。
JSON 和 JavaScript 是什么关系? JSON 和 JavaScript 的区别有哪些? – 简书 (jianshu.com)
666