做开发这些年,我几乎每天都要跟 JSON 打交道。接口返回、配置文件、日志输出、前端渲染,哪怕只是临时验证一段数据,也得先把它格式化一下才能看得下去。以前我浏览器里翻来翻去,不是收藏了七八个工具站,就是临时搜索一个“json格式化”,结果点进去全是广告弹窗,还得忍受各种“复制结果需要关注公众号”的套路。最近我挖到一个特别省心的集合站,叫 ForJSON,一口气提供 27 个 JSON 在线工具,而且完完全全免费。用了一段时间后,我确实想把里面真正值得用的工具、踩过的坑、以及一些能提高效率的用法,整理出来。
如果你是前端、后端、测试、运维,或者正在学习 JSON 数据格式,这篇文章应该对你有用。我尽量不讲空话,全是我实际动手后的体验和总结。
1. 为什么我最终留下了 ForJSON,而不是继续用零散小工具
1.1 你收藏夹里是不是也堆了一堆“一次性”工具页
我做接口联调的时候,最常干的几件事就是:格式化 JSON、校验 JSON 有没有写错、把 JSON 转成 CSV 给产品看、把接口返回值和另一份返回值做 diff。这些需求没啥难度,但架不住频率高。以前我收藏了一堆工具链接,真正要用的时候反而很痛苦:有的是英文界面,字段名看不懂;有的打开就是满屏广告,误触一下直接跳去下载 App;还有的下一次打开就要重新登录,我连账密都记不住。最烦的是很多工具只解决一个问题,比如格式化是一个网站,转 CSV 又要换另一个网站,来回切换非常打断思路。
1.2 ForJSON 解决的三个核心问题
ForJSON 给我的第一印象是“聚合度很高”。一个域名下面,把开发者日常会遇到的 JSON 操作基本都收进去了。我数了一下,工具数量正好是 27 个,覆盖格式化、校验、压缩、转义、转 XML、转 CSV、转 YAML、转 TSV、Base64、Unicode、JSON Path 查询、Schema 校验、JSON Diff、Mock 数据生成等等。它的页面风格比较干净,没有花里胡哨的广告,操作逻辑也很直觉:左边粘贴数据,右边出结果,点击按钮立刻执行。
第二是“免费没有套路”。我自己实测过,不需要注册,也没遇到“免费次数用完”这种弹窗。对开发者来说,“完全免费”这四个字太珍贵了,尤其是工具类网站,能持续免费还保持稳定,我至少愿意把它放进书签。
第三是“优先在浏览器本地处理”。这一点要展开说。ForJSON 的很多工具是纯前端逻辑,数据粘贴到页面后,在本地浏览器内存里完成处理,不会把你的 JSON 内容上传到服务器跑一圈。这意味着响应速度快,也不容易被第三方服务器记录数据。当然,具体到某些转换功能到底是不是纯本地,我没办法从代码层面 100% 确认,但正常使用下来,即使网络断开,格式化这类基础操作依然能用,说明本地计算的比重很高。
1.3 适合谁,不适合谁
如果你是前端、后端、测试、运维,或者经常需要处理日志、配置文件、接口数据的同学,ForJSON 是个不错的效率工具。特别是处理“一次性”的临时数据时,比打开编辑器、装插件、写脚本快得多。对正在学习 JSON 的初学者来说,它也有帮助:把一段错误的 JSON 粘进去,点校验,工具能告诉你大概哪一行出问题,比反复读文档更直观。
但我也要说清楚它的边界。如果你处理的是公司核心业务数据、用户隐私数据,或者单位有硬性保密要求,那我不建议把原始数据直接贴到任何在线工具里,哪怕它宣传自己是纯本地处理也不行。你能做的,是先做脱敏,去掉敏感字段,只保留结构。另外,如果你处于完全离线、无法访问外网的生产环境,那在线工具天然不适合,还是老老实实用命令行和编辑器插件更稳妥。
2. 这 27 个工具到底包含什么?我的一份完整清单与分类
2.1 高频处理类:格式化、校验、压缩、转义
这类工具是我用得最多的,属于“顺手就能完成”的基础操作。
- JSON 格式化:把压缩成一行、没有换行的 JSON 变成带缩进的清晰结构。
- JSON 校验:检查 JSON 是否合法,哪里少了逗号、多了括号,它会给出错误位置。
- JSON 压缩:反过来,把格式化后的 JSON 压成一行,方便复制到 URL 参数或请求体里。
- JSON 转义:把 JSON 里的双引号、反斜杠等特殊字符转成适合嵌入字符串的形式。
- JSON 反转义:把转义后的内容恢复成正常 JSON,这个在看日志时特别常用。
我举个例子你就明白。后端给你的日志长这样:
{"name":"张三","age":18,"tags":["dev","test"]}如果你直接复制到聊天群里发,可能引号会被吞,看着很难受。先用“JSON 格式化”跑一遍,变成:
{ "name": "张三", "age": 18, "tags": ["dev", "test"] }问题定位就舒服很多。这类工具没什么学习成本,但“在同一个页面里切来切去”的体验,确实能减少很多无意义操作。
2.2 格式互转类:XML、CSV、YAML、TSV
ForJSON 里最让我意外的是互转工具很全:JSON 转 XML、XML 转 JSON、JSON 转 CSV、CSV 转 JSON、JSON 转 YAML、YAML 转 JSON、JSON 转 TSV。这些看起来都是“同一份数据的皮换来换去”,但实际使用场景差很多。
JSON 转 CSV 是我平时用得最多的。后端接口返回一堆 JSON 数据,产品和运营看不懂,你直接转成 CSV 发过去,他们用 Excel 或者 WPS 一打开,结构清清楚楚。JSON 转 YAML 则适合写配置:有些项目用 YAML 做配置,你手上只有 JSON 格式的内容,直接转换能避免手敲缩进。JSON 转 XML 在处理老旧系统对接时很有用,虽然大家都觉得 XML 繁琐,但架不住历史系统只认这个格式。
反方向的转换同样重要。比如有些老接口只返回 XML,你想把它变成 JSON 给前端用,这时候用 XML 转 JSON 就很省事。CSV 转 JSON 也常出现在数据迁移场景:客户给你一份 Excel 导出的 CSV,你需要转成 JSON 写入数据库,手动拼逗号绝对是个灾难,交给工具就稳很多。
2.3 高级操作类:路径查询、Schema 校验、Diff 对比、Mock 生成
这一类工具属于“不用不知道,一用吓一跳”的类型。
JSON Path 查询,简单说你不用眼睛在一大段 JSON 里找某个字段了。直接输入类似$.data.items[0].name这样的路径表达式,工具能帮你把对应值拎出来。这跟 XPath 查询 XML 是同一个思路。对嵌套极深、数组套数组的数据,效率提升非常明显。
JSON Schema 校验,适合后端同学自测。你可以定义一套 Schema,比如哪些字段必填、name 必须是字符串、age 必须是数字,然后把实际 JSON 贴进去,工具会告诉你它符不符合规则。这比写一堆 if-else 测试简单多了。
JSON Diff,就是对比两份 JSON 的差异。接口联调时,我要确认这次提测的返回和上次到底改了什么,肉眼比对根本不可靠。用 diff 工具,它能标出新增字段、删除字段、修改前后的值。我见过不少同事还在用“复制到两个编辑器窗口,左右人眼扫盲”,真的效率太低。
Mock 数据生成,适合前端在后端接口还没好时造数据。你给它一个简单的模板结构,它可以生成一批有随机值的数据,比如姓名、数字、布尔值、邮箱之类的。虽然它不像专门的 Mock 平台那么强大,但胜在随手可用,临时演示完全够。
2.4 编码与展示类:Unicode、Base64、颜色高亮、行转数组
这类工具通常很细碎,但真到了边界场景,它们能救命。
- JSON 转 Base64 / Base64 转 JSON:接口调试、加密传输、URL 传参时经常用到。
- Unicode 转中文:很多服务端返回的内容是
\u5f20\u4e09这种形式,肉眼根本看不懂,一键转成中文。 - 中文转 Unicode:有些接口要求入参必须做 Unicode 编码。
- JSON 颜色高亮:纯展示用途,让文字变成不同颜色,层级更清楚。
- JSON 数组行转 JSON 数组:把多行文本合成一个 JSON 数组,或者反过来把数组展开成多行,写测试数据特别方便。
我把整套工具整理了一份速查表,方便大家按图索骥:
| 序号 | 工具类型 | 典型用途 |
|---|---|---|
| 1 | JSON 格式化 | 查看接口返回、分析日志 |
| 2 | JSON 校验 | 定位语法错误,学习 JSON 语法 |
| 3 | JSON 压缩 | 减少请求体体积,复制到 URL |
| 4 | JSON 转义 | 放入代码字符串、拼接 SQL |
| 5 | JSON 反转义 | 还原日志里的转义字符串 |
| 6 | JSON 转 XML | 对接旧系统 |
| 7 | XML 转 JSON | 解析旧接口返回 |
| 8 | JSON 转 CSV | 给运营/产品发表格数据 |
| 9 | CSV 转 JSON | 数据导入、Excel 转配置 |
| 10 | JSON 转 YAML | 生成配置文件 |
| 11 | YAML 转 JSON | 解析 YAML 配置 |
| 12 | JSON 转 TSV | 带制表符的数据处理 |
| 13 | TSV 转 JSON | 处理表格工具导出的数据 |
| 14 | JSON Diff | 对比接口返回差异 |
| 15 | JSON Path 查询 | 提取深层字段,替代肉眼查找 |
| 16 | JSON Schema 校验 | 接口参数规则验证 |
| 17 | Schema 生成 | 根据 JSON 反推数据结构 |
| 18 | Mock 数据生成 | 前端临时测试数据 |
| 19 | JSON 转 Base64 | 加密传输、URL 传参 |
| 20 | Base64 转 JSON | 解码数据 |
| 21 | Unicode 转中文 | 还原\u编码 |
| 22 | 中文转 Unicode | 接口入参编码 |
| 23 | JSON 高亮 | 阅读长文本 |
| 24 | JSON 数组行转换 | 快速构造数组 |
| 25 | JSON 对象键排序 | 统一字段顺序 |
| 26 | JSON 去重 | 清理重复数组元素 |
| 27 | JSON 文本搜索 | 大段 JSON 中定位关键字 |
这张表是我根据 ForJSON 目前的功能归纳的,具体到页面里可能名称略有不同,但本质都一样。
3. 几个最值得重点说的工具实测与操作要点
3.1 JSON 格式化:别只看“有没有缩进”,要看它能不能帮你定位错误
很多人觉得格式化就是把 JSON 变好看,其实不然。ForJSON 的格式化工具在“美化”的同时,还能带着错误提示:如果你的 JSON 本身就是坏的,它会标出大概在第几行第几列报错,并且给出一个接近原因的解释。
我实测过一个很经典的错误案例。我写过这样一段 JSON:
{ "name": "张三" "age": 18 }第二行结尾少了逗号。工具点“格式化”后,没有直接把内容硬排成好看的样子,而是提示在"age"附近有 syntax error,并指出可能是缺少逗号。这种提示方式对初学者特别友好,因为你光盯着屏幕看,大概率要看好几遍才能发现少了逗号。
操作上没什么好说的,就是把 JSON 文本复制到输入框,点击按钮,右边立刻出结果。需要注意的反而是一个细节:有些同学的 JSON 是从日志里复制出来的,前后可能带着多余的空行、注释,或者INFO:这种前缀。直接把这种内容丢进去,工具会报错。正确的做法是先清理干净,只保留 JSON 主体部分。这个“锅”不能甩给工具,它只接受纯 JSON。
3.2 JSON 转 CSV:遇到“数组套对象”时别急着转
JSON 转 CSV 是我向很多人安利过的功能,但它并不是“万能转换器”。CSV 是二维表结构,行和列都规整,而 JSON 可以是多层嵌套的,如果结构不规整,直接转出来的 CSV 会非常难看。
我举个实际例子。假设接口返回的是:
{ "code": 0, "data": [ { "id": 1, "name": "Alice", "address": { "city": "上海", "zip": "200000" } }, { "id": 2, "name": "Bob", "address": { "city": "北京", "zip": "100000" } } ] }如果直接转换,工具通常会把data里的每个对象当作一行,而address这种嵌套对象会被展开成address.city和address.zip这样的列,结果其实还算合理。但如果你的数组里每个元素结构不一致,比如第一个有email字段,第二个没有,那转出来的 CSV 就可能出现大量空列。遇到这种情况,建议先用 JSON Path 或者文本搜索把数据整理成统一结构,再转 CSV。
还有一个小技巧:转 CSV 之前,注意选择用哪个字段作为列顺序的基准。ForJSON 的转换结果一般会取第一个对象的键顺序,但这个顺序不一定符合你的需求。如果你想要固定的字段顺序,建议先手动调整一下 JSON 里的键顺序,或者把第一行数据改成你期望的字段顺序,再进行转换。
3.3 JSON Diff:看接口返回变化比对着屏幕强一百倍
接口联调最头疼的事之一,就是后端说“我什么都没改”,但前端这边的数据表现就是不一样。这时候把两份 JSON 丢进 JSON Diff,差异一眼就能看出来。
我常用的场景是这样的:先在测试环境抓一份接口返回,然后在预发布环境抓同一份接口返回,两份内容粘贴到 JSON Diff 工具里,左侧是旧数据,右侧是新数据。工具会把新增的行标成绿色,删除的行标成红色,修改的值会在两侧高亮显示。有一次我就靠它发现后端在返回列表里悄悄删掉了一个字段,对象里的值也从数字变成了字符串。这种变化肉眼很难发现,但 Diff 工具一目了然。
用 Diff 工具时有两点要提醒:第一,两份 JSON 的键顺序如果不一致,可能会被误判成差异。好在 ForJSON 的 diff 一般是基于结构比对,不是在文本层面逐字比较,所以键顺序不同不会触发大量假差异。第二,如果两份数据相差巨大,比如一个是空对象,另一个是完整数组,工具输出会很长,建议先做一些裁剪,只保留需要对比的字段。
3.4 Mock 数据生成:给前端临时造数据的正确姿势
前端开发经常会遇到后端接口还没好,或者接口字段经常变动的情况。ForJSON 的 Mock 数据生成功能,支持自定义一个模板,然后根据模板生成模拟数据。
比如你想生成一个包含 5 条用户数据的数组,模板可以这样写:
{ "id": "{{number}}", "name": "{{name}}", "email": "{{email}}", "active": "{{boolean}}" }工具识别到这些占位符后,会自动填充随机值,生成 5 条差不多的数据。这个功能对于写演示 demo、跑通前端页面流程非常方便。不过要注意,它生成的随机数据只是格式合法,不代表业务逻辑正确,比如邮箱可能没有规则、年龄可能是负数等情况都需要后期自行处理。别把 Mock 数据和真实业务数据混淆。
4. 完整实操场景:从一段乱糟糟的日志到一份能用的表格
4.1 场景还原:日志里的一长串 JSON
前两天我帮同事排查一个数据同步的问题。他把线上日志复制给我,里面是一条被转义、压缩、还混着前后缀的 JSON。长这样(为了演示我简化了):
2026-05-11 10:22:33 ERROR sync failed data={"order_id":"A1001","user":{"name":"张三","level":"vip"},"items":[{"sku":"SKU1","price":19.9},{"sku":"SKU2","price":29.9}]} trace_id:abc123这种文本别说人眼了,就连普通工具也未必能直接识别,因为data=前后还有别的日志信息。
4.2 步骤流程:格式化 → 校验 → 提取字段 → 转 CSV
我的处理步骤是这样的:
第一步,先把日志里的 JSON 主体抠出来。从data=后面的{开始,到最后的}结束,复制这段纯 JSON。
第二步,在 ForJSON 里选“JSON 反转义”。因为日志里可能包含\"这种转义引号,虽然我的例子里没有,但真实日志中经常存在。反转义后,字符串里的\"会变回",这样才算回到真正的 JSON 文本。
第三步,用“JSON 格式化”把压缩成一行的 JSON 展开,确认结构没问题,同时能看清嵌套关系。
第四步,我想把items数组单独提取出来,转成 CSV,方便放 Excel 里统计每个商品的价格。这里可以直接用 JSON Path 查询,输入$.data.items,拿到一个商品数组。
第五步,把它粘贴到“JSON 转 CSV”工具里,转换结果就是:
| sku | price |
|---|---|
| SKU1 | 19.9 |
| SKU2 | 29.9 |
这样,原本一坨让人头疼的日志,最后变成了一张清晰的小表格。整个过程不超过两分钟,比手写 Python 脚本快得多。
4.3 中间遇到的两个坑
这个流程看着顺畅,但我一开始也踩过坑。
第一个坑:直接格式化带前后缀的日志。我刚开始偷懒,把整行日志扔进格式化工具,工具直接报错。后来才意识到,在线工具不会也不能帮你识别“哪一段是 JSON”,必须自己先抠出有效部分。这也算是个经验:处理日志时先用提取、反转义,再格式化。
第二个坑:JSON 转 CSV 时user整个丢了。因为我把items单独提出来转 CSV,所以user没出现在表里。如果你希望表格里保留用户名,就需要提前把user.name这样的嵌套字段展开到每个 item 对象里,或者用“先提取再组合”的方式处理,总之别指望 CSV 能自动帮你保留所有上下文信息。
5. 用 ForJSON 时你必须知道的底层逻辑与安全边界
5.1 JSON 语法快速复习:为什么工具会报“Expected property name”
用工具不等于不懂原理。ForJSON 能准确告诉你错误位置,但如果你自己完全不懂 JSON 语法,看到报错依然会懵。这里简单复习几个核心规则。
JSON 只支持两种结构:对象({})和数组([])。对象里的键必须用双引号包裹,字符串值也必须用双引号。数字、布尔值、null不需要引号。键和值之间用冒号,键值对之间用逗号。最后一个键值对后面不能跟逗号,这是一个极其常见的错误。
所以当工具报“Expected property name”的时候,通常意思是:它在这个位置期望看到一个被双引号包裹的键名,但实际看到的不是。可能是因为你写了单引号,或是因为上一个键值对漏了逗号,导致它把下一个键当成了别的东西。这类报错不是工具乱说,它只是严格遵循规则而已。
理解了这些,你在用校验工具的时候,就更容易把“工具告诉你的错误”转化成“你自己能快速改对的错误”。这也是我建议大家别盲目依赖工具的原因,工具是辅助,不是大脑。
5.2 在线工具的数据去哪了?隐私注意事项
这一点必须说实话。虽然我在前面提到 ForJSON 的很多处理是在本地浏览器完成的,但一个在线网站到底有没有把你的数据发回服务器,作为普通用户你是很难从黑盒层面确认的。我建议你始终保持一个底线:不要把不可公开的数据,原封不动地贴到任何在线工具里。
我自己的习惯是“先脱敏,再粘贴”。比如接口返回里有userId、phone、email这种字段,我会先手动改成test1、13800000000、a@b.com这样的假数据。这样即使网上工具真的记录了输入,我也只会暴露测试数据,不会泄露真实用户隐私。
如果你身处金融、医疗、政务等强监管行业,公司信息安全规范一般会明确禁止使用外部在线工具处理生产数据。这时候请严格遵守公司规定,用本地工具替代。ForJSON 虽然免费好用,但它不能替你承担合规责任。
5.3 大 JSON 文件的处理边界
我测试过一个大概 30MB 的 JSON 文件,直接粘贴到浏览器输入框,页面会有明显卡顿,格式化过程差不多要十几秒。如果是 100MB 以上的大文件,普通在线工具基本扛不住,甚至可能直接崩溃。
这不是 ForJSON 的问题,而是浏览器本身的 JS 执行性能和内存限制。它的处理发生在你本地浏览器,而不是高性能服务器,所以大文件表现不佳是可以预见的。
我的建议是:超过 5MB 的 JSON,先用命令行工具处理,比如jq或 Python 脚本。只有处理小片段、临时数据时才用在线工具。千万不要把在线工具当成大数据分析平台,期待它处理几百 MB 的文件,那不现实。
5.4 免费背后是否有限制
目前我还没遇到次数限制、强制登录、功能试用期这些东西。它的“免费”确实比较彻底,没有把转换结果做成水印,也没有要求分享好友解锁高级功能。
不过,免费工具也意味着没有 SLA 承诺。如果哪一天这个网站挂了、被墙了、停止运营了,都是有可能的。所以我建议你把 ForJSON 当成一个“效率辅助”,而不是“核心链路”的一部分。真正重要的 JSON 处理流程,还是要学会用本地工具兜底,比如jq、python -m json.tool或者编辑器里的 JSON 插件,这样就算在线工具不可用,你也不至于停在原地。
6. 常见问题速查表与我的排查经验
6.1 问题速查表
| 症状 | 可能原因 | 处理建议 |
|---|---|---|
格式化后中文变成\uXXXX | JSON 本身存储的就是 Unicode 转义 | 使用“Unicode 转中文”工具还原 |
| 复制出来的 JSON 一直报错 | 从日志里复制时带了前后缀或转义符 | 先提取 JSON 主体,再反转义 |
| JSON 校验提示缺少逗号/括号 | 键值对之间漏了符号或多了逗号 | 定位到提示行,对照 JSON 语法规则修改 |
| JSON 转 CSV 出现大量空列 | 数组元素结构不一致 | 先统一数据结构,再去重空字段 |
| 格式化大文件卡死 | 文件太大,浏览器内存不足 | 改用jq或本地脚本处理 |
| 两份 JSON 对比差异过多 | 键顺序不一致,或数据量差异较大 | 先用“对象键排序”统一顺序再 diff |
| 接口返回的 JSON 字符串播放不了 | 内容被转义,不能直接用 | 先反转义,再格式化 |
6.2 几个独家小技巧
技巧一:格式化前先“换个行”。有些 JSON 是数组外面套对象,数组里每个元素是一整段很长的对象,格式化后依然很难读。我的习惯是先看数组里有多少元素,然后用“文本搜索”定位每个元素的开头,比如搜索{或者"id"。这比肉眼翻屏快很多。
技巧二:用压缩功能做接口传参前检查。有时候你从 Postman 里复制请求体,带着缩进和空格,粘贴到代码里会多出很多无意义空格。先用压缩工具压成一行,再放入代码字符串,既省空间也整洁。
技巧三:用“转义”功能拼日志。如果你想在代码里打印一段包含引号的 JSON,直接手写转义很容易出错。把正确 JSON 复制到转义工具里,得到转义后的字符串,再粘到代码里,稳得一批。
技巧四:配合浏览器开发者工具使用。比如你在 Network 面板里复制一条接口响应,里面有大量嵌套数据,你可以先复制到 ForJSON 格式化,再用 JSON Path 提取关键字段。这样就不用在浏览器里反复展开折叠节点了。
7. 我个人的使用体会
说到底,ForJSON 这类在线工具解决的是“高频、轻量、临时”的需求,它不能替代你理解 JSON 本身。我见过不少新人一遇到 JSON 就想着“找个工具转一下”,这当然可以,但我更建议在用了工具之后,多看一遍格式化结果,多想一想为什么这里会报错,为什么字段被展开了。工具能帮你省时间,但真正让你不慌的,还是脑子里那套对 JSON 的基本认知。
如果你也经常跟 JSON 打交道,可以把它放进书签,下次临时处理数据时拿出来用。但与此同时,花二十分钟把jq的基础用法学会,把python -m json.tool记住,再装一个本地编辑器插件,这些“兜底方案”才是你真正离不开的东西。免费工具用着爽,但别把所有鸡蛋都放在一个篮子里。