Skip to content

0x010-什么是JSON5格式

JSON5 – JSON for Humans | JSON5

JSON5是JSON文件格式的扩展,旨在更易于手动编写和维护(例如用于配置文件)。不用于机器间通信(请继续使用JSON或其他文件格式进行该类操作)。JSON5于2012年开始,截至2022年,每周下载量超过6500万次,排名npm上最受依赖包的前0.1%,被主要项目如Chromium、Next.js、Babel、Retool、WebStorm等采用,同时也原生支持苹果平台,如MacOS和iOS。

JSON5数据交换格式形式上是JSON的超集(因此有效的JSON文件始终有效的JSON5文件),扩展语法以包括ECMAScript 5.1(ES5)的一些规范。它也是ES5的子集,有效的JSON5文件也会始终有效的ES5文件。

  • 支持单引号字符串
  • 支持注释
  • 支持数组或者对象的尾随逗号
  • 支持16进制数字
  • 支持数字的小数点在开头或者结尾
  • 等等

例如:

json
{
  // comments
  unquoted: 'and you can quote me on that',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Look, Mom! \
No \\n's!",
  hexadecimal: 0xdecaf,
  leadingDecimalPoint: .8675309, andTrailing: 8675309.,
  positiveSign: +1,
  trailingComma: 'in objects', andIn: ['arrays',],
  "backwardsCompatible": "with JSON",
}
{
  // comments
  unquoted: 'and you can quote me on that',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Look, Mom! \
No \\n's!",
  hexadecimal: 0xdecaf,
  leadingDecimalPoint: .8675309, andTrailing: 8675309.,
  positiveSign: +1,
  trailingComma: 'in objects', andIn: ['arrays',],
  "backwardsCompatible": "with JSON",
}