跳到正文
DevTools / 配置文件格式转换

配置文件格式转换

每套技术栈都选了不同的配置格式,把一个服务从一种格式迁到另一种,如果没有转换器就只能手工重写。本工具可读写 JSON、YAML、TOML、XML、CSV 和 INI,支持任意两种格式之间的互转,并同时展示两侧内容,方便你检查类型是否幸存——因为这类迁移里真正麻烦的失败不是语法错误,而是端口号悄悄变成了字符串。

完全在浏览器本地运行——不会上传任何内容。

输入 (JSON)
输出 (YAML)

工作原理

这些格式分属两个家族。JSON、YAML 和 TOML 是有真实类型的数据格式:数字就是数字,布尔就是布尔,null 与空字符串不同。XML 和 INI 则是没有类型系统的标记格式,所有值都是文本,因此转入时会丢失类型信息,转出时需要推断。本工具在从 XML、CSV、INI 转换时会做类型推断,把裸写的 true、false、null 视为对应值,把纯数字字符串视为数字,并标出推断发生的位置。

YAML 与 TOML 是开发者最常需要互转的两种格式。YAML 对缩进敏感,支持锚点与别名复用,并且依据规范版本和解析器不同会分化出多个互不兼容的方言。TOML 则明确无歧义——每个值都通过键赋值,表由表头声明——且不依赖有效空白,因此不容易被一次错误粘贴弄坏。TOML 还拥有 JSON 所没有的原生日期时间类型;把它们转成 JSON 会变成 ISO 8601 字符串,转回来则是有损操作,值得检查。

XML 在结构上与其他格式都不同,它是一棵带属性、混合内容与重复兄弟元素的树。把 XML 转成 JSON 需要做选择:属性可以变成带 @ 前缀的键,也可以变成嵌套对象;重复元素可以变成数组,也可以在有第二个元素之前保持为单个对象。本工具采用一致的映射——属性加 @ 前缀、文本内容放在 #text 下、重复元素转为数组——并把结果显示出来,让你看到结构形状,而不是在生产环境才发现。

CSV 是其中最宽松的。嵌套数据没有任何标准,只能被拍平成带点号的列名,例如 user.address.city,而这恰恰是大多数分析工具和表格导入所期望的形式。反向转换会把这些点号路径重新展开为嵌套对象。分隔符、引号与表头处理都可配置,因为从欧洲版 Excel 导出的分号分隔文件同样是 CSV,用逗号解析只会得到一列混乱的结果。

常见应用场景

  • 把 JSON 夹具转成 YAML,以便粘贴进 Kubernetes 或 CI 配置。
  • 把 TOML 应用配置转成 JSON,与另一套环境做对比。
  • 把嵌套的接口响应拍平成 CSV 列,导入表格软件或数据仓库。
  • 把遗留服务的 INI 或 properties 文件转成结构化的 YAML。
  • 把 YAML 片段转成 JSON 来确认它到底是什么结构——JSON 的结构是显式的。
  • 把 XML 数据源转成 JSON,供没有 XML 解析器的服务使用。

最后更新: 2026-10-14

常见问题解答

哪些转换方向会丢失信息?

任何转入 XML、CSV 或 INI 的转换都会丢失类型,因为这些格式只存文本——数字变成字符串,null 变成空值。TOML 转 JSON 会丢失原生日期时间类型,它们会变成 ISO 8601 字符串。YAML 转 JSON 会丢失锚点、别名和注释,因为转换作用于解析后的数据,而注释不属于数据。唯一基本无损的方向是 JSON 转 YAML。

为什么我的端口号变成了字符串?

因为源格式本身没有类型信息。在 XML、CSV 和 INI 中一切都是文本,值 8080 是四个字符而不是数字。本工具在转出时会推断数值,但推断终究是启发式的——邮编 01234 或版本号 1.10 本应保持为文本,任何把它们变成数字的启发式都比不做更糟。使用输出前,请检查带前导零或含多个小数点的值。

注释是怎么处理的?

注释属于文件格式而非数据,因此解析时会被丢弃,也无法跨格式携带。YAML 转 JSON 再转回来,注释不会回来。如果注释承载了必要信息,例如某个取值的理由或引入它的工单号,请把原始文件纳入版本控制,而不要依赖往返转换。

CSV 里的嵌套数据怎么处理?

拍平。嵌套对象会变成带点号的列名,user.address.city 成为单独一列;数组要么用分隔符连接,要么展开成带序号的列,例如 tags.0 和 tags.1。这与分析工具和表格导入的期望一致。转换回结构化格式时会把点号路径重新展开为嵌套结构,只要没有键本身合法地包含点号,往返就是干净的。

相关工具