JSON 工具箱

格式化 / 压缩 / 转义 / 诊断,纯浏览器端处理。

处理结果

使用方法

  1. 在左侧粘贴 JSON 或任意文本,点上方动作按钮处理:格式化、压缩、转义、反转义、诊断。
  2. 「缩进」只影响格式化,可选 2 或 4 个空格;「加载示例」「异常示例」一键填入演示数据。
  3. 出错时提示会指出行号与列号;处理完成即可复制或下载,⇄ 按钮可把结果换到输入框继续处理。

示例

输入

{"订单号":"A-2026-001","客户":{"姓名":"李娜","城市":"上海"},"金额":1299.5,"已支付":false}

格式化结果

{
  "订单号": "A-2026-001",
  "客户": {
    "姓名": "李娜",
    "城市": "上海"
  },
  "金额": 1299.5,
  "已支付": false
}

默认规则(2 空格):中文键名与小数金额原样保留,只调整空白。示例读数为 9 行、深度 2、6 个键。

规则、局限与已知问题

  • 严格按 RFC 8259 校验:注释、末尾逗号、单引号、裸键、NaN、Infinity 都会被拒绝,提示直接说明该改什么,而不是抛解析器原文。
  • 格式化与压缩只改空白:字符串转义、数字字面量与带引号的键原样输出——"\u00e9" 仍是 "\u00e9",12345678901234567890 不失真,1e400 不会变成 null,-0 保持 -0。
  • 重复键保留最后一个值(与 JSON.parse 取值一致),并给出警告;前面那个值会被丢弃。
  • 「转义」把整段输入原样编码成一个 JSON 字符串字面量(引号、反斜杠与控制字符被转义,其余字符不改写);「反转义」支持带引号的完整字符串(严格校验)与裸转义序列两种形式。
  • 「诊断」只校验与统计(字符数、行数、深度、键数),不产出格式化结果;诊断有效但存在重复键时同样给出警告。
  • 行列号按 Unicode 码点计,emoji 记 1 列;只有空格、Tab、换行、回车算空白,全角空格 U+3000 与不换行空格 U+00A0 会带码位报错。
  • 上限 100 万字符与 512 层嵌套:超过即报错,不截断。文件上传只读取本地文件内容,同样不上传。
  • 不做 JSON→YAML/XML/CSV、JSON Schema、JSONPath、树视图;不支持 URL 传参、历史记录。所有处理都在浏览器内完成,内容不上传、不保存。

JSON 处理完之后,通常还会用到。