JSON5 在线解析

本地处理
app.json5.view

也可通过 #data={"name":"Ada"}#url=... 灌入数据,读完即从地址栏清除。

使用说明

JSON5 是写配置时更宽松的超集:允许注释、尾逗号、单引号和无引号键名。本页把它解析后输出标准 JSON,方便再交给接口或其它工具。从 VS Code、webpack 配置或手写 JS 对象里拷出来的内容,往往不能直接 JSON.parse ,可以先过这一页。

吃得下注释

单行 // 与多行 /* */ 都会被丢掉,只保留数据。重要说明请另存在 README,不要指望注释能进标准 JSON。

适合「给人看的配置」转成「给程序读的 JSON」这一步。

尾逗号

对象和数组最后一项后面的逗号不再导致解析失败。这也是从 JS / TS 对象字面量复制时最常见的报错原因。

转换后输出不会保留尾逗号,符合 RFC 8259。

输出仍是标准 JSON

结果可被 JSON.parse 和大多数后端直接使用。键名会补上双引号,单引号字符串会改成双引号。

转完可继续格式化、校验或生成 Schema。

示例

JSON5 输入
{
  // 功能开关
  name: 'json5',
  enabled: true,
  tags: ['a', 'b',],
}
标准 JSON
{
  "name": "json5",
  "enabled": true,
  "tags": [
    "a",
    "b"
  ]
}
会保留注释吗?

不会。标准 JSON 没有注释,转换后注释会被丢弃。

和 JSONC 是一回事吗?

JSONC 通常只加注释;JSON5 还放宽了键名、引号和数字写法。本页按 JSON5 规则解析。

Infinity / NaN 支持吗?

JSON5 允许这类数字写法。转成标准 JSON 后,下游是否接受取决于具体解析器,请抽查。

能当完整的 JS 执行器吗?

不能。只解析数据字面量,不会运行函数或计算表达式。

推荐工作流

  1. 从配置文件或代码里复制带注释、尾逗号的片段。
  2. 贴到本页,确认右侧输出是可 JSON.parse 的标准 JSON。
  3. 复制结果到接口、测试 fixture 或其它工具页。
  4. 需要给人继续编辑且保留注释时,考虑改用 YAML 而不是硬塞进 JSON。

JSON5 适合「人写、机器读之前先规范化」。对外 API 仍应只接受标准 JSON,避免客户端各写各的超集。