跳到主要内容

JSON 格式化与语法检查|支持 JSON5 转 JSON

以 2 空格缩进格式化 JSON,并报告语法错误所在的行和列。输入按 JSON5 解析,因此可以使用注释、单引号、不带引号的键和末尾逗号;输出始终是标准 JSON。

阅读压缩成一行的 API 响应。

支持 JSON 和 JSON5,可使用注释、单引号和末尾逗号;不会执行函数或 JavaScript 表达式。

JSON / JSON5 输入

格式化后的 JSON

适用场景

  • 阅读压缩成一行的 API 响应。
  • 把带注释的 JSON5 或 tsconfig 风格文件转成标准 JSON,交给不接受注释的工具。

使用方法

  1. 将 JSON 或 JSON5 粘贴到左侧编辑器,或加载 .json 文件。
  2. 如果出现错误,前往报告的行和列,检查引号、括号和逗号。
  3. 从右侧编辑器复制缩进后的标准 JSON。

JSON 或 JSON5 输入

// service config
{
  name: 'billing-api',
  port: 8080,
  retries: [1, 2, 4,],
  debug: false,
}

格式化后的 JSON

{
  "name": "billing-api",
  "port": 8080,
  "retries": [
    1,
    2,
    4
  ],
  "debug": false
}

功能与限制

格式化在浏览器中完成,不会向服务器提交任何内容。

注释和原有的引号风格会被丢弃。缩进固定为 2 个空格;本页没有压缩或键排序选项。

值只作为数据解析,不会被执行。NaN 和 Infinity 无法用 JSON 表示,因此会被拒绝。

重复的键不会报错:以最后一个值为准,因此 {"a":1,"a":2} 会变成 {"a": 2}。

FAQ

能格式化包含注释的 JSON 吗?

可以。由于输入按 JSON5 读取,// 和 /* */ 注释都能被接受,但会从输出中删除,输出为标准 JSON。

为什么我的大整数变了?

数字会转为 JavaScript 双精度浮点数,超过 2^53 的整数会丢失精度:12345678901234567890 会输出为 12345678901234567000。请把长 ID 写成带引号的字符串。

会按 JSON Schema 校验吗?

不会。这里只检查语法,不检查 schema 定义的必填字段、类型和取值范围。

规范与参考资料