JSON 格式化
粘贴 JSON,点“格式化”得到整齐的缩进,同时检查语法;有错会告诉你在第几行第几列、错在哪。内容只在你的浏览器里处理,不会上传。
使用限制
- 只接受标准 JSON:不允许注释、尾逗号、单引号字符串、不带引号的键,也不接受开头的 BOM;遇到这些会明确指出位置,不会悄悄替你改。
- 数字按原文输出,不经过 JavaScript 的数字类型,所以
12345678901234567890这样的大整数、1.10这样的写法都不会被改动。 - 嵌套超过 1000 层会停止处理并提示,避免浏览器卡死。
- 行号按换行符计,列号按字符计(一个 emoji 占 2 列)。
- 超过约 20 万个字符的输入在后台线程里处理,几 MB 的文件通常在 1~2 秒内完成,但此时不生成树状视图;结果框里放入几十 MB 的文字时,浏览器自己排版会变慢。
- 格式化不会改变数据的含义,只会改变空白;字符串里的转义会被规范化(例如
\u4f60会还原成“你”)。如果同一个对象里有重复的键,两份都会保留,并给出提示。
结果很长,下面的文本框只预览开头的一部分;点“复制结果”“下载结果”或“把结果放回输入框”拿到的是完整内容。
树状视图
使用方法
- 把 JSON 粘贴到输入框,选好缩进。
- 点“格式化”:语法正确时下方给出整齐的结果和树状视图,点三角可以折叠或展开;语法有误时会指出第几行第几列,并显示出错的那一行,点“定位到出错位置”可以直接跳到输入框里的那个字符。
- 点“压缩成一行”去掉所有多余空白;点“转义”把整段文字变成一个 JSON 字符串(引号、换行都会转义);点“去转义”把
"{\"a\":1}"这样的转义字符串还原成{"a":1}。 - “按键名排序”会把每一层对象的键按字符编码顺序排列,方便对比两份 JSON。
常见问题
为什么用在线格式化会丢掉大整数的精度?
很多工具先把 JSON 交给 JavaScript 自带的 JSON.parse,数字就变成了 64 位浮点数,超过 16 位的整数会被改成近似值(12345678901234567890 会变成 12345678901234567000)。本工具自己解析,数字原样保留。
JSON 里能写注释吗?
不能。标准 JSON(RFC 8259)没有注释语法;配置文件里常见的 JSONC、JSON5 是扩展格式。本工具遇到注释会报“不是标准 JSON”并指出位置。
“转义”和“去转义”有什么用?
把一段 JSON 放进另一个 JSON 的字符串字段、或写进代码里的字符串时,引号和换行需要转义;从日志里拿到的 "{\"id\":1}" 这样的内容,需要去转义才能当 JSON 查看。
我的数据会被上传吗?
不会。解析和格式化都在你的浏览器里完成(大文件在浏览器的后台线程里),页面不会把输入的内容发送到任何服务器。