写代码的时候,格式转换是个绕不开的问题。配置文件、数据导出、接口调试,这些场景里经常要在不同格式之间来回折腾。
以前我的解决方案是:写一个临时脚本,处理完了扔掉。后来发现这个需求出现得太频繁了,每次都从头写效率太低。
开发者最常遇到的格式转换场景
JSON ↔ YAML:这是最高频的需求。Kubernetes 配置文件是 YAML,但很多接口返回 JSON;Ansible playbook 是 YAML,但调试数据通常是 JSON。两者之间的互转每周都要遇到。
JSON ↔ CSV:从 API 拿到的 JSON 数组,需要导入 Excel 或给非技术同事看,要转成 CSV。反过来,Excel 导出的 CSV 要处理成 JSON 接口数据也是常见需求。
XML ↔ JSON:老系统、Java 后端、SOAP 接口经常输出 XML,前端或 Python 处理的时候需要 JSON。
TOML 格式:Rust 项目(Cargo.toml)、Hugo 静态站(config.toml)用得多,但生态工具里有时候要求 YAML,需要互转。
文件编码转换:接手老项目时经常遇到 GBK 编码的文件,现代工具期望 UTF-8,或者反过来。
ConvertET 的数据格式转换功能

ConvertET 的数据格式转换模块支持:
- JSON → YAML / YAML → JSON
- JSON → CSV / CSV → JSON(支持设置分隔符:逗号、分号、Tab)
- XML ↔ JSON
- TOML 格式转换
- 文件编码转换(UTF-8、GBK、GB2312、Latin-1、UTF-16 等)
操作是图形界面的,不需要记命令行参数。对于不常写脚本的产品经理、测试人员来说也很友好。
JSON 转 YAML 会有什么问题吗
大部分情况下转换是精准的,数据结构完整保留。但有几个细节值得注意:
数字类型:JSON 里的 1.0 和 1 都是合法的数字,但 YAML 对这两者的处理可能不同。如果你的数据里有浮点数,转换后最好检查一下。
特殊字符:YAML 里冒号(:)、井号(#)有特殊含义,如果 JSON 的 key 里包含这些字符,转换出来的 YAML 会自动加引号,这是正常的。
多行字符串:JSON 里用 \n 转义换行,YAML 转换后可能会展开成真正的多行,这在 YAML 里是更规范的表达方式。
CSV 和 JSON 互转的注意事项
JSON 转 CSV 有个天然的限制:CSV 是二维表格结构,而 JSON 可以嵌套多层。
ConvertET 的 JSON 转 CSV 处理的是 JSON 数组(数组里每个元素是对象),把顶层字段作为 CSV 的列。如果 JSON 里有嵌套对象,嵌套部分会被序列化成字符串放在一个格子里。
所以这个功能最适合的场景是:API 返回的数组型 JSON 数据,需要导出给非技术人员查看或导入 Excel。

编码转换的实用场景
这个功能对接手旧项目或处理第三方数据的开发者来说会很有用:
- 数据库导出的 CSV 是 GBK,Python 脚本处理时需要 UTF-8
- 爬取的网页内容是 Latin-1,需要转成 UTF-8 存储
- 发给日本团队的文件需要转成 Shift-JIS
ConvertET 支持主流编码的双向转换,操作时会先自动检测原始文件的编码,再按你的选择输出。
常见问题
Q:数据格式转换需要联网吗?
不需要。JSON/YAML/CSV/XML/TOML 转换以及文件编码转换完全离线运行,不依赖任何外部服务。对于包含配置文件、API 密钥的敏感数据,本地处理是最安全的方式。
Q:JSON 转 CSV 对数据结构有什么要求?
JSON 数据需要是顶层数组结构,数组里每个元素是对象,顶层字段作为 CSV 的列。不满足这个结构的 JSON(比如嵌套很深的对象)转 CSV 效果会打折扣。
Q:编码转换支持哪些编码?
支持 UTF-8(带/不带 BOM)、GBK、GB2312、GB18030、Latin-1、UTF-16、Shift-JIS、Big5 等主流编码。
Q:这些数据格式功能免费版能用吗?
是的,数据格式转换(JSON/YAML/CSV/XML/TOML/编码)全部属于基础功能,免费版可用,每次处理 1 个文件。需要批量处理,专业版从 ¥28/月起。
这几类格式转换功能在 ConvertET 里都是免费的基础功能,下载地址:https://www.zpyztech.com/product/convertet/
如果你是开发者,顺便看一眼它的视频/音频转换功能也不错,同一个工具能处理更多场景。