JSON5验证解析

工具介绍

JSON5是JSON语法的扩展,旨在提高开发者编写和处理数据的便利性,方便开发者编写和维护JSON配置文件。JSON5解除一些标准JSON的限制,诸如不支持注释,不支持字符串换行,所有的key都必须双引号,数组的最后一个元素不能有多余的逗号…等等。下面是JSON5的主要特点:

允许注释:
JSON5允许在代码中添加单行(//)和多行(/* */)注释,添加注释,让数据阅读起来更容器。

键名更自由:
键名可以不用引号括起来,Unicode字符也可以作为键名,键名允许重复,后面的会覆盖前面的。

尾随逗号:
在对象和数组的最后一个元素后面可以允许有逗号,这使得添加、删除和移动项目变得更容易。

数字增强:

- 支持十六进制表示法(如0xff5643)
- 允许数字以小数点开始或结束(如.5或5.)
- 支持正负无穷大(Infinity, -Infinity)和NaN(Not a Number)

 

示例(来自Chromium/Blink项目的配置文件):

{
  // 这是一个注释
  unquoted: 'and you can quote me on that',
  singleQuotes: 'I can use single quotes',
  lineBreaks: "Look, Mom! \
No \\n's!",
  hexadecimal: 0xdecaf,
  leadingDecimalPoint: .8675309,
  andTrailing: 8675309.,
  positiveInfinity: Infinity,
  negativeInfinity: -Infinity,
  notANumber: NaN,
  largeNumber: 1e+100,

  arrayWithTrailingComma: [
    1,
    2,
    3,
  ],

  objectWithTrailingComma: {
    one: 1,
    two: 2,
  },
}

虽然JSON5更易于人类读写,但它不是JSON的官方标准。在使用JSON5时,需要确保你的解析器和环境支持JSON5格式。


JSON5解析代码

JavaScript:点击查看

Python:点击查看

Ruby:点击查看

Java:点击查看

Java(Jackson):点击查看

C#:点击查看

C#(Newtonsoft):点击查看



JSON5 vs JSONC

JSONC (JSON with comments) 是JSON格式的一个扩展,它允许在JSON中添加注释。
JSONC是由微软创建,并在VS Code中使用,vscode的`settings.json`配置文件,就使用jsonc语法。
JSON5是一个定义明确的规范,包括注释、尾随逗号、多行字符串、单引号或双引号、无引号的对象键,以及其他借鉴自ECMAScript 5.1的特性。它是JavaScript的严格子集,并且易于理解。