返回

在线JSON格式化

输入 JSON
输出
格式化结果将显示在这里...

工具介绍

把 JSON 文本贴进来,可以按 2 空格或其他选定宽度重新缩进,也可以去掉多余空白压成一行。解析失败时只显示错误,不会假装输出一份「差不多正确」的结果。处理在浏览器内存里完成。

格式化和压缩都先走 JSON.parse,再用 JSON.stringify。格式化把当前缩进宽度传给 stringify 的第三个参数;压缩不传,因此键和值之间也不留空格。JSON 要求键和字符串用双引号,不允许注释、尾逗号和单引号字符串。

计算示例

  1. 输入:{"name":"张三","age":28,"ok":true,"n":null},缩进 2

    输出:四行对象,键值之间有一个空格,null 和 true 保持小写

  2. 输入:{\n "a": 1,\n "b": [2, 3]\n} 后点压缩

    输出:{"a":1,"b":[2,3]}

  3. 输入:{name:1}

    输出:解析失败,输出区为空,错误文字来自浏览器的 JSON 引擎

使用限制

  • 不能修复单引号、注释或尾逗号,只能指出解析失败。示例数据里的「张三」会原样留在字符串里,不会被转义成 \uXXXX。
  • 数字超出安全整数范围时,可能在解析阶段就丢掉精度。
  • 对象键的顺序按解析结果输出,重复键只保留最后一个。

常见错误

  • 把 JavaScript 对象当成 JSON,键没有双引号。
  • 在字符串里留了未转义的换行。换行必须写成 \n。
  • 用压缩结果去肉眼核对嵌套。压缩只保证语法等价,不适合阅读。

常见问题

缩进宽度存在哪?▾
只影响本次 stringify。页面默认是 2,改动不会写回服务器。
会上传这段 JSON 吗?▾
不会。parse 和 stringify 都在当前页面里执行。
数组里的空格也会被压缩掉吗?▾
会。第二例的 [2, 3] 压缩后是 [2,3]。

相关工具