跳至主要內容

〔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/',
}
上次编辑于: