JSON 工具怎么选
格式化只是入门,真正省时间的是「比较前先排序」和「按目标语言直接生成代码」。
「看不懂」用格式化,「对不对」用 Schema 校验,「怎么取」用 JSONPath,「变成什么」用语言转换器;比较前一定先按键排序。
JSON 的处理需求其实分好几层,而大多数人只用到最浅的一层。最浅的是「看不懂」——一段压缩过的 JSON 挤成一团,用格式化工具展开缩进就好。往上一层是「对不对」——结构是否符合预期?这时要的是 Schema 校验,而不是肉眼看。再往上是「怎么取」和「变成什么」——从深层嵌套里捞出某个字段,或者把一份 JSON 直接变成 TypeScript 接口、Python 实体类、SQL 建表语句。
这里有个特别容易被忽略的细节:比较两份 JSON 时,如果键的顺序不同,直接 diff 会报出一大堆「假差异」。正确做法是先用键排序工具把两边都按相同规则排序,再比较——差异列表会立刻干净下来。下面按用途把 18 个工具分好类。
选型对照表
看逐项详解 →| 你要做的事 | 推荐工具 | 为什么用这个 | 注意 |
|---|---|---|---|
| 把挤成一团的 JSON 展开 | JSON格式化/压缩 | 格式化、压缩、语法校验一体 | 报错时注意看行列号,通常就是漏了逗号 |
| 确认 JSON 语法有没有错 | JSON格式化/压缩 | 解析失败会指出具体位置 | 尾随逗号在标准 JSON 里是非法语法 |
| 校验 JSON5 / JSONC(带注释) | JSON5/JSONC 校验器 | 标准 JSON 不允许注释和尾逗号 | JSON5 是超集,别指望服务端都认 |
| 校验结构是否符合约定 | JSON Schema 验证器 | 检查字段是否缺失、类型是否匹配 | 需要先有一份 Schema 定义 |
| 从深层嵌套里取出某个字段 | JSONPath查询器 | JSONPath 类似 XPath,可批量匹配 | 不同实现的 JSONPath 语法略有差异 |
| 比较两份 JSON 有什么不同 | JSON比较工具 | 逐层对比,标出增删改 | 比较前先排序键,否则键序差异会淹没真实改动 |
| 让两份 JSON 的键顺序一致 | JSON键排序 | 递归排序所有层级的键 | 排序后更容易看出「值变了」还是「键没了」 |
| JSON 转 CSV / Excel | JSON转CSV | 便于用表格软件查看和统计 | 嵌套对象需要先拍平,否则会丢数据 |
| JSON 转 Excel 表格 | JSON转Excel | 直接生成可打开的表格文件 | 数组型字段会变成一列长文本 |
| JSON 生成 SQL 插入语句 | JSON转SQL | 批量导数据到数据库 | 注意字段类型与引号转义 |
| JSON 生成 TypeScript 接口 | JSON转TypeScript | 前端拿到接口响应直接定类型 | 同名不同类型的字段会被推断成联合类型 |
| JSON 生成 Java / Go / Python 实体类 | JSON 转实体类 | 后端建 POJO / struct / dataclass | 支持 Jackson、Gson 注解开关 |
| YAML 与 JSON 互转 | YAML转换 | 写配置用 YAML,传数据用 JSON | YAML 缩进敏感,Tab 会解析失败 |
| CSV / Markdown 表格互转 | CSV/TSV/Markdown表格互转 | 表格与数据格式之间来回倒 | 含逗号或换行的单元格需要正确转义 |
| 把 URL 查询参数转成 JSON | GET参数转JSON | 排查接口传参问题 | 注意 URL 解码与同名参数 |
| 把 JSON 还原成 GET 请求串 | JSON转GET请求 | 手工拼请求地址时省事 | 中文和特殊字符需要 URL 编码 |
| 统计 OpenAPI 文档有哪些路径 | OpenAPI 路径统计 | 快速盘一个 API 文档的规模 | 仅适用于 OpenAPI / Swagger 结构 |
| 查看浏览器 localStorage / sessionStorage | 浏览器存储查看器 | 调试前端存储的数据 | 数据只在本机浏览器里,不会上传 |
| 生成 JSON-LD 结构化数据 | 结构化数据JSON-LD生成器 | 给网页加搜索引擎能读的元数据 | 注意属性名必须用 Schema.org 的定义 |
表格中列出的工具均可直接点击进入,全部免费、无需注册。
逐项详解
全部工具总览 →1JSON、JSON5、JSONC 到底差在哪
标准 JSON 的规则很严:键必须用双引号、不允许注释、不允许尾随逗号、不允许单引号。JSON5 和 JSONC 是它的放宽版本——JSONC 允许注释(VS Code 的配置文件就是 JSONC),JSON5 更进一步,允许单引号、无引号键名、尾逗号甚至十六进制数字。它们的共同问题是:浏览器原生的 JSON.parse 不认这些扩展。所以你写配置文件时可以用 JSONC 图方便,但一旦要把数据发给接口,必须先转回标准 JSON,否则对方解析会直接失败。
2比较 JSON 之前,先按键排序
这是最实用、也最容易被忽略的一条经验。两份 JSON 在逻辑上完全等价,但只要键的写出顺序不同,逐行 diff 就会报出一大片差异,真正的改动被淹没在里面。原因是 JSON 规范里对象的键是无序的,而大多数 diff 工具是按文本行比对的。解决办法很简单:先用键排序工具把两边都按相同的规则递归排序,再拿去比较,剩下的差异就全是「真的变了」。当你要比对两个版本的接口响应、两份配置文件时,这一步能省下大量肉眼排查时间。
3什么时候该用 Schema 校验
格式化工具只能告诉你「这段文字是不是合法 JSON」,它管不了「这段 JSON 里该有的字段有没有、类型对不对」。当你需要确认一份数据符合约定结构时——比如前端拿到的接口响应是否包含必需字段、配置模板是否被填错类型——就需要 JSON Schema。Schema 是一份描述「数据应该长什么样」的声明文件,校验器拿它去比对实际数据,逐项报出缺失字段、类型不符、取值越界。这是格式化工具的语法检查完全覆盖不到的一层。
4从 JSON 直接生成代码
手写实体类是纯粹的重复劳动,而且极易写错字段类型。正确做法是把接口响应样本丢给语言转换器,让它按实际结构推断出类型定义。本站的 JSON 转实体类工具支持 Java、Go、Python、PHP、C# 五种语言,会递归推断嵌套对象、数组元素类型(数组会取首元素判断是标量还是对象),Java 还支持生成 Jackson 或 Gson 注解。需要注意的是:自动推断只能基于你给的样本,如果样本里某个字段恰好是 null,推断结果就会不准确,所以样本要尽量包含真实的非空数据。
关于「JSON 工具怎么选」的常见问题
为什么两份看起来一样的 JSON,比较时会报出很多差异?
因为 JSON 规范里对象的键是无序的,而多数 diff 工具是按文本逐行比对的。只要键的写出顺序不同(或缩进风格不同),就会报出大量假差异。解决办法:先用 json-sort 把两边都递归排序(并统一格式化),再拿去比较,剩下的差异就都是真实改动。
JSON 里能写注释吗?为什么我的配置文件能写?
标准 JSON 不允许注释。你能写注释是因为那些文件其实是 JSONC(如 VS Code 的 settings.json)或 JSON5,它们是放宽了语法的扩展格式。浏览器原生的 JSON.parse 不认这些扩展,所以这类文件一旦要作为数据发给接口,必须先去掉注释转成标准 JSON,否则对方解析会失败。
JSON 转实体类时,为什么生成的类型不准?
自动推断完全基于你提供的样本数据。如果样本里某个字段是 null,工具无法知道它将来是什么类型,通常会退化成 Object 或 any。要得到准确结果,样本应当包含真实的非空数据,并且尽量覆盖数组里可能出现不同结构的元素。
JSON Schema 和 JSON 格式化有什么区别?
格式化工具检查的是「语法」——这段文字能不能被解析成 JSON;Schema 校验检查的是「结构」——解析出来的数据是否符合你定义的字段、类型、取值范围。前者回答「格式对不对」,后者回答「内容对不对」,两者互补,不能互相替代。
嵌套的 JSON 转成 CSV 后数据丢了,怎么办?
CSV 是二维表格,装不下任意深度的嵌套结构。遇到嵌套对象时,通常有两种处理:一是「拍平」(把嵌套键用点号连成一列,如 user.name),二是把整个子对象序列化成一段文本塞进单元格。选择哪种取决于你后续要做什么——要统计就拍平,要保留原样就序列化成文本。
相关指南与场景合集
全部指南 →本篇涉及的全部 18 款工具
JSON格式化 - JSON 美化、压缩、校验,支持层级缩进和高亮显示
在线JSON5/JSONC校验与格式化工具,支持带注释、尾随逗号、单引号、十六进制数值等宽松语法解析,快速定位配置文件语法错误并格式化输出。
按键名字母顺序、长度或类型对JSON对象的键进行排序,支持递归嵌套、大小写控制、数组保留顺序等。
左右两个JSON输入,深度递归对比差异,新增(绿)、删除(红)、修改(橙)高亮显示
验证JSON数据是否符合Schema规范,精准定位验证失败字段,支持Draft-07标准
在线把 JSON 转换成实体类代码,支持 Java、Go、Python、PHP、C# 五种语言,自动识别嵌套对象与数组并生成对应的类,Java 可选 Jackson 或 Gson 注解,Go 自动带 json 标签。纯浏览器本地转换,接口数据不外传。
将JSON数据转换为TypeScript接口定义,支持嵌套对象、数组、联合类型,自动推断字段类型。
在线JSON转SQL工具,将JSON数组转换为INSERT/UPDATE/DELETE SQL语句,支持MySQL/PostgreSQL/SQLite,自定义表名和引号风格
在线使用JSONPath表达式查询提取筛选JSON数据,支持多种查询语法,纯浏览器本地处理
在线JSON转CSV工具,将JSON数组数据转换为标准CSV格式,支持自定义分隔符、引号样式、自动识别字段、嵌套对象展开,转换结果可一键复制或下载。
JSON转Excel - 将JSON数据转换为Excel表格文件下载
在线YAML格式化校验工具 - 支持YAML格式化、语法校验、JSON与YAML互转、压缩、结构预览,纯浏览器本地运行
CSV、TSV、JSON、Markdown 表格四种格式互相转换
在线GET请求参数转JSON工具,将URL查询字符串解析为JSON对象,支持嵌套对象和数组结构还原
在线JSON转GET请求参数工具,将JSON对象转换为URL查询字符串,支持数组格式、变量名风格切换、URLEncode编码
粘贴 OpenAPI YAML/JSON 文档,自动统计接口总数、HTTP 方法分布,生成路径树形图与明细表
查看、编辑、删除当前浏览器的 localStorage、sessionStorage 和 Cookie,支持添加修改与导出 JSON,纯本地处理
生成 Schema.org 结构化数据 JSON-LD 代码,支持文章、商品与常见问题三种类型,字段填好即可复制到页面 head,帮助争取搜索富媒体摘要。
速查在线工具箱