开发者工具 · JSON / 数据格式

JSON 格式化

缩进/压缩/树视图/校验/高亮

✓本地处理 · 不上传 ✓免费 · 无需登录 ✓无次数限制 累计 192 次使用
输 入
JSON
输出将在这里呈现 —— 点「示例」试试
就绪 · 粘贴 JSON 实时校验,拖入 .json 文件可直接读取
JSONPath 取值 $ 根 · .key 属性 · [n] 索引 · [*] 通配 · ..key 递归
第一节

关于本工具

About

从 API 返回里复制一段 JSON 来调试,粘进编辑器后发现缩进全乱、少了个逗号,整段变红。这个工具在粘贴后立即做语法校验并标出错误行号,同时把嵌套层级展开成可折叠的树。格式化、压缩、高亮三档切换都在浏览器本地完成,数据不经过任何服务器——适合在未连外网的开发机上检查接口返回,或给后端同事发一段结构清晰的报文。

使用场景

壹

接口联调排错

后端返回的 JSON 串里混了转义字符和多余逗号,用浏览器控制台看一坨乱。复制进本工具,点「校验」红线标出第 37 行末尾多了个逗号;切「树视图」展开,发现某字段值是字符串 'null' 而非真正的 null。不用逐行数括号,5 秒定位到问题。

贰

日志中提取配置

运维凌晨从 200MB 的 Nginx 访问日志里 grep 出一段 JSON 配置,粘贴到终端被缩进打乱,眼花了也看不出哪层嵌套。丢进工具点「格式化」,多层嵌套瞬间展开成缩进结构,直接复制到生产环境,避免手改缩进导致配置失效。

叁

OpenAPI 文档校对

写接口文档时,手写的 JSON Schema 示例里少了个 'required' 数组。把示例粘贴到工具,点「校验」提示 'type' 字段缺失,展开树视图发现 'properties' 下有个字段名拼错了('descrption' 少了个 i)。不用等同事 review 完才发现,自己当场改掉。

肆

前后端字段对齐

前端拿到后端返回的 JSON,发现 'userName' 字段一直 undefined。把返回体复制进工具,切「树视图」展开所有键,发现后端返回的是 'user_name'(下划线命名)。前端改代码前,先用工具的「压缩」功能把 JSON 压成一行,发给后端确认字段名,省去反复联调。

伍

Mock 数据生成校验

用脚本生成了 100 条随机 JSON 数据准备压测,但担心生成器有 bug——比如某条里 'id' 字段重复了。把整段 JSON 粘贴进工具,点「校验」通过;再切「树视图」检查结构,发现所有 'uuid' 字段长度一致,确认生成逻辑没问题。

第二节

使用指南

Getting Started

使用步骤

  1. 1在左侧编辑区粘贴或键入 JSON 文本,右侧实时显示格式化后的缩进结果与行号
  2. 2点击「压缩」按钮,JSON 被合并为单行,去除所有空格与换行,适合传输或存储
  3. 3切换至「树视图」标签,JSON 结构以可折叠的树形节点展示,点击节点展开或收起子层级
  4. 4点击「校验」按钮,若 JSON 语法正确则状态栏显示绿色提示;若出错则高亮标记错误位置并显示错误描述
  5. 5勾选「高亮」开关,键名、字符串、数字、布尔值以不同颜色区分,便于快速定位字段

输入输出示例

输入输出说明
{"name":"张三","age":30,"city":"北京"}{ "name": "张三", "age": 30, "city": "北京" }常规:单层简单对象,验证基础缩进与键值对齐
[1,2,3,4,5][ 1, 2, 3, 4, 5 ]常规:纯数组,验证列表展开与逗号换行
{}{}边界:空对象,验证不产生多余换行或缩进
[][]边界:空数组,验证输出保持紧凑
{"a":{"b":{"c":1}}}{ "a": { "b": { "c": 1 } } }边界:深层嵌套(3层),验证递归缩进正确性
{"name":"张三","age":30,"city":"北京",}{ "name": "张三", "age": 30, "city": "北京" }易错:末尾多余逗号,工具自动去除并格式化(非严格校验模式)
{"key":"value with \"quotes\""}{ "key": "value with \"quotes\"" }易错:字符串内包含转义引号,验证转义字符保留不破坏格式

常见错误对照

1.JSON 末尾多了一个逗号

✗ 错误{ "name": "张三", "age": 30, }
✓ 修复{ "name": "张三", "age": 30 }

JSON 规范 (RFC 8259) 明确禁止对象或数组最后一个元素后出现逗号,这与 JavaScript 对象字面量不同。

2.键名没有用双引号包裹

✗ 错误{ name: "张三", age: 30 }
✓ 修复{ "name": "张三", "age": 30 }

JSON 要求所有键名必须用双引号括起来,单引号或无引号均非法,这是与 YAML 或 JavaScript 对象字面量的关键区别。

3.字符串值用了单引号

✗ 错误{ "name": '张三' }
✓ 修复{ "name": "张三" }

JSON 字符串值必须使用双引号,单引号仅在 JavaScript 中允许,在 JSON 解析器中直接报错。

4.数值前补零,被解析为八进制或报错

✗ 错误{ "version": 0123 }
✓ 修复{ "version": 123 }

JSON 数值不允许前导零(除非小数部分 0.xxx),部分解析器会将其视为八进制或直接抛出语法错误。

5.布尔值或 null 写成字符串

✗ 错误{ "active": "true", "data": "null" }
✓ 修复{ "active": true, "data": null }

true、false、null 是 JSON 字面量,不加引号;加引号后变成字符串,语义完全不同,下游逻辑可能误判。

6.注释混入 JSON 文本

✗ 错误{ "name": "张三" /* 注释 */ }
✓ 修复删除注释,或使用 JSONC(带注释的 JSON 变体)

标准 JSON 不支持任何注释(// 或 /* */),这是与 JSON5 或 JSONC 的区别。工具默认按标准 JSON 校验,注释会导致解析失败。

7.浮点数小数点前后缺位

✗ 错误{ "pi": 3. } 或 { "pi": .14 }
✓ 修复{ "pi": 3.14 }

JSON 数值中,小数点前后必须都有数字,否则不符合 JSON 数值词法规则,大多数解析器会拒绝。

8.字符串内未转义控制字符

✗ 错误{ "message": "第一行 第二行" }
✓ 修复{ "message": "第一行\n第二行" }

JSON 字符串中,换行符、制表符等控制字符必须转义为 \n、\t 等形式,直接嵌入字面换行会导致解析错误。

第三节

工作原理

How It Works

核心公式

depth = max({ level_of_nesting_for_each_element })

变量说明

  • depthJSON 最大嵌套深度,根为 0
  • level_of_nesting_for_each_element每个元素从根开始的层级数

示例

输入 JSON 为 {"a":{"b":[1,{"c":2}]}},遍历各元素:根 depth=0,a 的 depth=1,b 的 depth=2,数组元素 1 的 depth=3,c 的 depth=3。取最大值 depth=3。该值用于树视图缩进层级数(缩进 3 级)及校验时判断是否超过浏览器默认限制(通常 100 层)。

原始 JSON 文本词法分析(拆分 token)校验括号配对语法分析(构建树结构)类型推断输出输出形态(用户选择)缩进格式化压缩单行树视图语法高亮
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
问我把一大段 JSON 贴进去,页面卡死了怎么办?+
答

本工具纯前端处理,超大 JSON(比如超过 10MB)确实会让浏览器变慢甚至无响应。如果遇到卡顿,先试试压缩模式只校验结构,不展开树视图;还不行就分段粘贴,每次处理 1-2MB。工具本身不设文件大小上限,但受浏览器内存限制,建议 50MB 以上的 JSON 用命令行工具处理。

问格式化之后怎么把缩进调成 2 个空格?现在默认是 4 个。+
答

当前版本缩进固定为 4 个空格,不支持自定义缩进大小。如果需要 2 空格输出,可以把格式化结果复制到代码编辑器里用替换功能(把 4 空格替换成 2 空格)。后续版本会考虑加入缩进选项,但短期内只能手动调。

问校验通过了,但我的程序还是报错,是不是工具有 bug?+
答

校验通过只说明 JSON 语法正确(括号成对、引号完整、逗号位置对),不保证语义符合你的程序预期。常见情况:字段名大小写不同、值类型不符(比如程序要数字但你给了字符串)、缺少必要字段。建议把校验结果和程序报错信息对比,重点看字段名和值类型。

问树视图里怎么复制某个节点的路径?右键没反应。+
答

树视图目前不支持右键复制路径功能。要获取某节点的完整路径(如 data.users[0].name),可以手动从根节点逐层记下来,或者把鼠标悬停在节点上,工具会高亮对应的原始文本位置。如果频繁需要路径提取,建议先用压缩模式把 JSON 转成一行,再配合文本搜索定位。

问为什么我贴进去的 JSON 带注释,格式化后注释全没了?+
答

标准 JSON 规范(RFC 7159)不允许注释,本工具严格按规范解析,所有注释会被当作无效字符丢弃。如果你处理的是带注释的配置文件(比如 VS Code 的 settings.json 或 package.json),那些其实是 JSONC 格式(JSON with Comments),本工具暂不支持。建议先用支持 JSONC 的编辑器处理,再粘贴纯 JSON 部分。

问压缩后的 JSON 能再还原回带缩进的格式吗?+
答

可以。压缩只是去掉空格和换行,不改变数据本身,再次点击「格式化」就能恢复缩进和换行。注意:压缩不可逆的是注释(如果有的话),以及原始 JSON 中多余的空格(比如值两侧的空格),但数据结构和字段值完全不变。

问这个工具会上传我的 JSON 数据吗?公司敏感数据能用吗?+
答

本工具完全在浏览器本地运行,所有处理都在你的电脑上完成,不会将任何数据发送到服务器。你可以断网测试:关闭网络后页面依然能正常格式化、校验和压缩。公司敏感数据可以放心使用,但注意不要复制到地址栏或分享给他人,避免通过浏览器历史记录泄露。

问JSON 里中文变成了 \uXXXX 编码,格式化后能变回中文吗?+
答

不能。\uXXXX 是 Unicode 转义序列,JSON 规范允许用这种形式表示非 ASCII 字符。本工具格式化时保持原样,不会自动解码。如果需要看到中文,可以在粘贴前用文本编辑器把 \uXXXX 替换为实际字符(很多编辑器支持这个功能),或者确认生成 JSON 的程序是否设置了 ensure_ascii=False(Python)等选项。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

↑↓选择 ↵打开 ⌘+↵新窗口 esc关闭