JSON5支持注释

JSON5支持注释

JSON5 是 JSON(JavaScript Object Notation)的扩展版本,旨在通过引入 ECMAScript 5.1 的部分特性,使 JSON 更易于人工编写和阅读。它在保持与标准 JSON 兼容的同时,提供了更宽松的语法规则。

JSON5 的主要特性

允许末尾逗号

{

"name": "JSON5",

"version": "1.0", // 末尾可以加逗号

}

键名可省略引号(如果是合法标识符)

{

key: "value", // 不加引号

"another-key": 123 // 加引号也可以

}

支持单引号字符串

{

'message': 'Hello, 世界!'

}

多行字符串(用 \ 换行)

{

"text": "这是第一行\

这是第二行"

}

支持注释

单行注释://

多行注释:/* */

{

// 这是注释

"value": 42,

/* 这是

多行注释 */

}

扩展的数字格式

十六进制(0xFF)

特殊值(Infinity、NaN)

省略前导/后导零(.5、5.)

{

hex: 0x1A,

infinity: Infinity,

notANumber: NaN,

decimal: .5,

integer: 5.

}

JSON5 vs JSON 对比

特性

JSON5

JSON

注释

✅ 支持

❌ 不支持

无引号键名

✅ 支持

❌ 必须加引号

单引号字符串

✅ 支持

❌ 必须双引号

末尾逗号

✅ 支持

❌ 不允许

多行字符串

✅ 支持

❌ 不允许

宽松数字格式

✅ 支持

❌ 严格格式

JSON5 解析示例(JavaScript)

使用 json5 库:

const JSON5 = require('json5');

const obj = JSON5.parse('{key: "值", num: .5}');

console.log(obj); // { key: '值', num: 0.5 }

何时使用 JSON5?

配置文件:需要注释和更灵活的语法时(如 .eslintrc.json5)。

开发调试:临时存储带注释的复杂数据。

替代 JSON:当需要兼容 JSON 但希望更易读写时。

⚠️ 注意:JSON5 不是 JSON 的官方标准,部分工具可能不支持。正式接口传输仍需用标准 JSON。

如果需要将 JSON 转 JSON5 或反之,可以告诉我具体需求! 😊

相关探索