JSON 格式化工具

格式化、查看和复制 JSON。数据保留在浏览器中。

数据与格式
正在准备编辑器…
输入
输出
结果将显示在这里。

使用方法

  1. 粘贴 JSON、打开文件或尝试示例。
  2. 调整设置,结果会随输入更新。
  3. 复制或下载格式化结果。

认识 JSON

JSON 是用于交换结构化数据的文本格式,常见于 API 响应、配置文件和导出记录。它的值类型不多,方便在不同编程语言之间传递数据。

格式化让结构更易查看。缩进显示哪些值属于同一层级,换行让嵌套记录更易浏览。这些排版选择不会改变有效文档所表示的数据。

值与结构

JSON 文档包含一个值。根值可以是对象或数组,也可以是字符串、数字、布尔值或 null。对象将字符串名称与值关联,数组按有意义的顺序保存值。两者都可以嵌套。

类型示例含义
对象{"name": "Ada"}花括号中的命名属性。
数组["red", "blue"]方括号中的有序序列。
字符串"Hello, world"用双引号包围的文本。
数字-12.5e2十进制数字,可带指数。
布尔值true / false两个逻辑值之一。
空值null明确的空值,并非省略属性。

需要注意的语法

属性名和字符串必须使用双引号。名称与值之间用冒号分隔,对象成员和数组元素之间用逗号分隔。最后一个成员或元素后不要加逗号。注释、单引号和 JavaScript 表达式都不属于严格 JSON。

字面量 true、false 和 null 必须小写。数字使用十进制写法,可带负号、小数和指数。前导零、前导加号、NaN 和 Infinity 均无效。字符串内的引号、反斜杠和控制字符必须转义;换行必须写成 \n 这样的转义形式。

为了可靠地交换数据,对象名称应唯一。名称重复时,不同读取程序可能保留不同的值。格式化工具会报告并保留重复项,由你决定如何处理。仅通过语法检查,无法确认文档符合 API 约定或 JSON Schema。

格式化保留哪些内容

DevToolsy 验证输入,并调整原始 token 周围的空白。它保留 900719925474099312345、19.9900、1e+400、-0 等数字文本,以及字符串原始转义写法。这样可避免将数字解析为 JavaScript 浮点值后重新序列化造成的舍入。读取结果的应用仍会自行决定数值精度。

缩进、LF 或 CRLF 换行符及末尾换行属于输出约定。“排序键名”是独立的可选更改:它按解码后的名称,以确定且区分大小写的方式递归排列对象成员。数组顺序和重复名称的相对顺序保持不变。此功能便于阅读和比较差异,不是用于加密签名的规范化方案。

一个简单的 API 响应
紧凑输入
{"name":"Ada","roles":["developer","reviewer"],"active":true}
已格式化 · 2 个空格
{
  "name": "Ada",
  "roles": [
    "developer",
    "reviewer"
  ],
  "active": true
}

缩进改变显示方式。属性名、值和数组顺序保持不变。

处理限制

最多支持 5 MiB UTF-8 输入、20 MiB 输出、128 层嵌套、250,000 个扫描 token,每次运行最长 10 秒。较大的文档可能需要性能更好的设备。

?

常见问题

自动格式化会更改输入吗?

不会。输入短暂停顿后,只读结果会更新,输入内容保持原样。自动格式化默认开启。关闭后,可点击“格式化 JSON”或按 Ctrl/⌘ + Enter 手动运行。

JSON 尚未输入完整时会怎样?

编辑期间,上一次有效结果仍会显示。当前输入和设置生成有效结果之前,“复制”和“下载”不可用。选择错误可跳转到输入中的对应位置。

格式化会舍入大数或更改字符串转义吗?

不会。原始数字 token 和字符串转义写法均保留,包括长整数、小数末尾的零、指数写法和负零。其他应用可能以不同精度解读这些数字。

排序键名会同时重排数组吗?

不会。键名排序只递归应用于对象。数组保留原顺序,重复名称也保留相对顺序。排序默认关闭。

格式化工具能修复注释或尾随逗号吗?

工具只接受严格 JSON,会报告无效语法,不会猜测如何修复。注释、单引号字符串、未加引号的键名和尾随逗号都需要在输入中修正。

JSON Beautifier 和 JSON Formatter 是一回事吗?

是的。本页的美化、pretty-print 和格式化都表示为 JSON 添加易读的缩进和换行。需要紧凑文档时,请使用 JSON 压缩工具。

JSON 会离开我的设备吗?

粘贴的文本和本地文件都在浏览器中处理。DevToolsy 不会上传 JSON,也不保存文档历史记录。如需保留,请在离开前复制或下载结果。

寻找下一个实用工具

语言

切换语言?当前页面的内容将被清空。请先复制或下载需要保留的数据。