〔Electron〕引入JSON5
大约 2 分钟
利用 json5 解决 Electron 配置文件无法注释问题。
JSON5
你如果看过鸿蒙.next 的开发模块,就会发现它们在使用 json5。在 Electron 项目中,使用 json 格式的文件作为配置文件,缺点是无法添加注释,用 json5 能够解决这个问题。
json5 是 json 的扩展集,支持 json 的特性,有自己的特性:
- 支持注释,支持单行(//)和多行(/* */)注释;
- 键名灵活:
- 对象的键名可以不用双引号括起来,只要它们是有效的 ECMAScript 5.1 标识符;
- 键名也可以使用单引号或双引号括起来;
- Unicode 字符也可以作为键名;
- 允许键名重复,后面的键名会覆盖前面的;
- 尾随逗号,允许在对象和数组的最后一个元素后面有逗号,这有助于在大型数组或对象中插入和删除元素;
- 字符串多样性:
- JSON5 中的字符串可以包含转义序列,支持多行文本。
- 字符串可以使用单引号或双引号括起来。
- 字符串可以换行,支持多行字符串的表示。
- 数字扩展:
- JSON5 中的数字可以表示为十六进制。
- 允许数字以小数点开始或结束。
- 支持正负无穷大(Infinity, -Infinity)和 NaN(Not a Number)。
- 数值可以使用显式的正负号。
- 额外的空白字符
- JSON5 允许在字符串中包含额外的空白字符,这有助于在处理文本时保持格式。
- 其他特性:
- JSON5 可以直接表示日期对象,而不需要将其转换为字符串。
- 提供了表示二进制数据的机制。
- 允许直接表示正则表达式对象。
- 允许表示函数(尽管这在数据交换中并不常见)。
VSCode 对 JSON5 的语法支持
通过添加扩展插件“JSON5 syntax”,使 VSCode 支持 JSON5 语法。你如果向离线下载 VSCode 的扩展插件,可以点击“市场”,会跳转到浏览器中,在页面的右侧有“Download Extension”超链接,点击后就会下载.vsix 文件。
读取 JSON5 文件内容
如果项目中缺少 json5 工具包,则通过npm install json5
引入。
const JSON5 = require('json5')
const path = 'C:\setting.json5'
const content = JSON5.parse(path)
setting.json5 文件案例:
/* 配置文件 */
{
//后端服务器地址
URL: 'https://www.gremlins-book.com/',
//电子书服务器地址
URL_BOOK: 'https://book.gremlins-book.com/',
}