JSON 格式化

在线格式化 JSON:美化缩进、压缩成一行、校验并定位出错的行列、按键名递归排序、转义与反转义、JSON转CSV,全程在浏览器里完成,数据不上传服务器。

拖放 JSON 文件到这里

支持 .json .txt 等文本文件(最大 20MB)· 也可以直接把 JSON 粘贴到下面的输入框 · 数据不上传服务器

格式化选项

中文字符保持原样,不会被转成 \uXXXX 形式。

键名排序

递归排序所有对象的键,数组内元素的顺序保持不变。

使用方法

  1. 1 把 JSON 文本粘贴到输入框,或拖入 .json 文件。内容只在浏览器里处理,不会上传。
  2. 2 点「美化」按所选缩进展开,或点「压缩」合并成一行;有语法错误时会直接给出行号、列号与出错位置附近的内容。
  3. 3 需要整理结构时用「键名排序」,需要交给表格软件时用「转 CSV」,需要嵌进代码字符串时用「转义」。
  4. 4 点「下载结果」保存文件,或「复制结果」直接粘贴回编辑器。

支持范围与限制

项目 说明
处理方式 全程在浏览器本地完成,数据不上传服务器,不占用每日转换次数,也不需要登录,接口密钥与用户数据可放心处理
美化缩进 2 空格、4 空格或 Tab;中文字符保持原样,不会被转成 \uXXXX 形式
压缩 去掉所有非必要的空格与换行,输出单行文本;字符串内部的空格不受影响
校验能力 解析失败时给出行号、列号与该位置前后 40 个字符,并额外扫描常见错误:结尾多余逗号、单引号字符串、注释、NaN 与 undefined 字面量
键名排序 递归排序所有对象的键,可选升序降序与忽略大小写;数组内元素的顺序保持不变
JSON转CSV 对象数组扁平化成一维,嵌套的键用 a.b.c 路径做列名,所有对象的键取并集,缺失值留空;非对象数组输出单列
转义与反转义 把 JSON 文本转成可放进代码字符串的形式(换行变 \n、引号变 \"),或把带转义符的字符串还原成原文
统计项 嵌套深度、对象与数组个数、字符串数字布尔 null 各自的数量、键名总数
不支持 JSON5、JSONC(带注释)、YAML 与 XML 输入;不做 JSON Schema 校验,只检查语法是否合法
文件大小 建议 20MB 以内;结果超过 5000 行时输出框只显示前 500 行预览,下载为完整内容

文件安全说明

处理方式 全程在你的浏览器里完成,页面不会把文件提交到服务器
服务器副本 不产生,也没有上传文件或结果文件需要清理
每日次数 不占用免费转换次数,也不需要登录
网络请求 页面加载完成后不再有与文件相关的网络请求,断网也能继续处理本地文件

文件大小上限与支持的格式见上方「支持范围与限制」。

常见问题

接口返回的敏感数据可以放心粘进来吗?

可以。这个工具没有任何网络请求:解析、格式化与下载都在你的浏览器里完成,服务器不会收到也不会保存你粘贴的内容,因此也不需要登录、不占用每日次数。

提示语法错误但看不出哪里错了?

错误提示会给出「第几行第几列」以及该位置前后 40 个字符,先看那个片段。最常见的四种:对象或数组最后一个元素后面多了逗号、字符串用了单引号、写了 // 或 /* */ 注释、出现了 NaN 或 undefined,这些在 JSON 里都是非法的,工具会额外扫描并直接点名。

为什么格式化后中文变成了 \u4e2d\u6587?

本工具不会这么做,输出保留中文原样。如果你从别处拿到的 JSON 已经是 \uXXXX 形式,那是生成方用了 ASCII 转义;把它粘进来美化一次,输出就是可读中文(\uXXXX 是合法的 JSON 字符串转义,解析后即为中文)。

键名排序会影响数组顺序吗?

不会。排序只作用于对象的键名,数组元素的先后顺序原样保留,因为数组顺序通常代表数据本身的次序。

JSON转CSV 时嵌套对象怎么处理?

扁平化:{"user":{"name":"张三"}} 会变成列名 user.name。所有对象的键取并集作为表头,某个对象缺少的键留空,因此结果表格可能出现空单元格。

能把 YAML 转成 JSON 吗?

不能。YAML 的缩进语义与锚点引用需要完整的解析器,本工具只处理 JSON。请先用其他工具把 YAML 转成 JSON 再格式化。

压缩后的单行太长打不开怎么办?

压缩结果用于程序传输,不适合阅读。下载得到的文件可以正常保存;如果只是想减少体积又要保持可读,用「美化」并选 2 空格缩进即可。

很大的 JSON(十几 MB)能处理吗?

可以,浏览器原生解析器处理 20MB 以内的 JSON 通常在一两秒内完成。为避免页面卡死,输出框只显示前 500 行预览,下载的是完整结果。

相关工具