开发者工具
JSON 格式化与验证器
格式化、验证和压缩 JSON,或排序键而不舍入数字。粘贴文本或打开本地 JSON 文件。
计算结果
格式化 JSON,同时避免数值标识符被舍入
验证 JSON 语法,并将有效输入变得易读或紧凑。解析器保留原始数字词元,包括大整数及小数或指数的写法,而不是通过 JavaScript 数值转换进行舍入。这是语法检查,并非根据应用程序的模式验证数据。
操作步骤
- 粘贴 JSON,或打开本地 UTF-8 JSON 或文本文件。选择两个空格、四个空格、制表符或紧凑输出;可按需排序对象键。
- 处理输入。解析失败时,修正提示的行和列;即使格式化成功,也要检查重复键警告。
- 复制、下载或打印结果。编辑输入或选项后,请重新处理:工具会清除之前的结果,避免复制过期输出。
设置与限制
- 排序会改变什么
- 排序按区分大小写的字典顺序进行,也适用于嵌套对象。数组顺序保持不变。数字词元保持原样,但字符串转义可能被规范化,因此输出并非与源文件逐字节相同。
- 严格的 JSON 语法
- 键和字符串须使用双引号。注释、尾随逗号、NaN 和 Infinity 均无效。有效的顶层值可以是对象、数组、字符串、数字、布尔值或 null。
- 大小与复杂度
- 输入上限为 2 MiB(2,097,152 个 UTF-8 字节)。过深或过于复杂的文档也会被拒绝:解析器限制超过 128 层的嵌套和超过 200,000 个值节点的输入。
操作示例
粘贴下方示例输入,选择紧凑输出并启用排序。处理后比较结果,或打开可下载的 precision-example.json 文件。
下载示例文件
示例输入
{"b":2,"a":9007199254740993}预期结果
{"a":9007199254740993,"b":2}键 a 会移到 b 之前,而 9007199254740993 保持不变。采用普通 JavaScript 数值转换的格式化工具可能会舍入该标识符;本工具保留其原始数字词元。
常见问题与故障排查
为什么可以作为 JavaScript 使用的文件在这里失败?
JavaScript 对象语法可能允许注释、单引号或无引号的键,但 JSON 不允许。请明确修正源数据;本工具不会悄悄修复无效输入。
重复键会被删除吗?
不会。两项都会保留,并显示警告。不同解析器可能有不同的解释,因此在将 JSON 发送给其他系统之前,请先解决重复键。
复制按钮被阻止时怎么办?
无法访问剪贴板时,工具会选中输出,便于手动复制。也可以下载 formatted.json。格式化不会改变原始文件。