JSON5人类友好的JSON

JSON5 可以理解为 “人类友好的 JSON”,它是对传统 JSON(JavaScript Object Notation) 的一个扩展,让配置文件更容易写、读和维护。


一、Raw JSON5 是什么意思

Raw JSON5 通常指:

未经解析、未经处理的 JSON5 原始文本

也就是:

  • 还没被解析成对象
  • 只是字符串形式
  • 包含 JSON5 语法

例如:

1
2
3
4
5
6
7
8
9
{
// comment 注解
name: "GaGa",
age: 30,
servers: [
"prod",
"dev",
],
}

这就是 Raw JSON5 文本

解析之后会变成:

1
2
3
4
5
{
"name": "GaGa",
"age": 30,
"servers": ["prod", "dev"]
}

二、JSON5 vs JSON 关键区别

普通 JSON 像一个非常严格的军官:

{
  "name": "GaGa",
  "age": 30
}

JSON5 则像一个程序员写的配置文件

{
  // comment
  name: 'GaGa',
  age: 30,
}

JSON5允许:

特性 JSON JSON5
注释
单引号
key 不加引号
末尾逗号
NaN / Infinity
多行字符串

例子:

1
2
3
4
5
6
{
// service config
host: '127.0.0.1',
port: 8080,
timeout: Infinity,
}

三、JSON5解析流程(底层逻辑)

JSON5 最终也必须转换为标准 JSON 或对象

解析流程:

flowchart LR
A[Raw JSON5 text] --> B[JSON5 Parser]
B --> C[AST]
C --> D[Standard JSON]
D --> E[Program Object]

过程解释:

  1. 读取 Raw JSON5
  2. JSON5 Parser 解析
  3. 生成 AST
  4. 转换为标准 JSON
  5. 变成程序对象

四、哪些系统在使用 JSON5

JSON5 在现代开发生态中非常常见,例如:

  • Node.js 配置
  • 前端构建工具
  • AI Agent 配置
  • DevOps 工具

常见项目:

项目 用途
webpack 构建工具配置
babel JS 编译器配置
next.js 前端框架配置
clawhub/openclaw AI agent config