name: OLTool version: '2.0' tags: - json - yaml - toml config: theme: dark indent: 2
关于 数据格式转换器
数据格式转换工具在 JSON、XML、YAML、CSV 与 TOML 等结构化格式之间互转,自动推断字段类型并保持层级嵌套关系。它适合接口联调时把后台返回的数据改成前端更易用的形态,或在配置迁移、数据导入导出中消除格式壁垒,也支持把表格数据转成 API 所需的数组结构。例如把 JSON 的 {"name":"Tom","age":20} 转成 YAML 的 name: Tom / age: 20,或反向把 YAML 还原为 JSON,字段层级自动保持。使用时有几点要注意:一是 CSV 圆转时需要对象数组,转入时首行会被当作表头;二是 YAML 的自动类型推断可能把 on、日期这类字符串当布尔或时间戳,跨格式互转时容易丢失数组与空值语义(如 TOML/JSON 里的 null);三是极复杂的 TOML(内联表深嵌套)或带命名空间的 XML 建议用对应的专用工具。转换前先确认源数据的编码与嵌套层级是否符合预期,导出结果可一键复制或存为文件,联调接口、迁移配置或整理导入导出数据时都很顺手。
往返一致性是最实用的自检手段,也是这类转换最容易忽略的前提。把数据转成目标格式再转回原格式,逐项比对字段数量、层级与取值类型,能立刻发现字段丢失、嵌套被展平或类型被改写。这一步成本很低,却能挡住绝大多数静默的数据损失。
嵌套结构的处理必须先做决定,而非交给默认行为。扁平格式无法表达深层嵌套,因此必须选择:展开成多列、序列化为一段文本、或拆成多行记录。三种策略对下游的影响完全不同——展开会让列数随数据增长,序列化要求下游能解析文本,拆行则会成倍增加记录数。
与专用转换工具的分工需要明确:通用转换适合结构简单、只做形态变换的场景;涉及日期、金额、编码等有特定语义的字段时,专用工具更可靠,因为它们内置了相应的规则。通用工具在这些字段上通常只做字符串搬运,不会帮你校验语义是否仍然正确。
体积与性能也值得提前评估。通用转换往往先完整解析再整体序列化,因此超大文件会占用大量内存,而流式处理需要按记录逐步读写。判断标准是数据规模:几十兆以内可以整体处理,上百兆就应考虑分片或改用流式工具。
最后,转换后的校验环节应包含结构与业务两层。结构校验确认字段与层级完整,业务校验确认取值仍然符合规则(例如枚举值仍在允许集合内、必填项没有变空)。只做结构校验会漏掉类型与语义层面的变化,而那些变化往往要等下游出错才被发现。
数字精度是跨格式转换里最隐蔽的问题。不同格式对数字的表示能力不同,超出可表示范围的整数会在转换中被舍入,例如超过一定位数的标识符会被改写;浮点数则可能在往返转换后出现末位差异。因此对精度敏感的字段(编号、金额、时间戳)应确认在目标格式中按字符串承载,而不是依赖数字类型。
键顺序与重复键也值得关注。多数文本格式在语义上不保证键的顺序,某些转换因此会重排键;而重复键在不同解析器里的处理并不一致,有的取最后一个,有的直接报错。若下游依赖顺序或原文件存在重复键,应先规范化再转换,否则同一份输入在不同环境里可能得到不同结果。
实现原理
通用格式转换把源格式解析成对象树再按目标规则输出。两种格式的表达力差异必然带来取舍:扁平格式无法表示深层嵌套,只能展开成多列、序列化成文本或拆成多行。因此「转换成功」只说明能被解析,不说明信息完整,嵌套层级需要逐项核对。
含三层嵌套的对象转成表格三层结构被展平或序列化成单元格文本——需确认下游能否按原层级还原,否则会丢结构使用方法
- 打开「数据格式转换器」
- 导入或粘贴待处理的数据
- 根据需要调整输出选项
- 点击「处理」按钮,结果实时显示
- 复制或导出结果
使用场景
- 配置文件迁移 — 把 YAML 配置转成 TOML 或 JSON,在不同工具链之间无缝迁移。
- 接口数据导出 — 把 JSON 接口响应转成 CSV,直接导入 Excel 或数据分析工具。
- 跨格式对照 — 同一份数据在 JSON / YAML 间切换查看,快速理解结构差异。
- 表格转结构化 — 把 CSV 表格转成 JSON 数组对象,用于前端渲染或接口 Mock。
- XML 老系统对接 — 把 XML 转成 JSON 方便现代前端消费,或反向生成 XML 报文。
- 环境变量导出 — 把扁平的 .env 键值列表转成 JSON 或 YAML,用于容器内的结构化配置注入。
常见问题
支持哪些格式互转?
支持 JSON、YAML、TOML、XML、CSV 五种格式的任意方向互转,以统一的 JS 对象为中间表示。
CSV 转换有什么要求?
转出 CSV 时需要数据是对象数组(每行一个对象),工具会自动以并集字段作为表头;转入 CSV 时第一行会被当作表头。
TOML/XML 支持复杂结构吗?
支持常见的表、数组、嵌套与属性。极端复杂的 TOML(如内联表嵌套)或带命名空间的 XML 建议用对应的专用工具。
交换方向按钮有什么用?
点击中间的交换按钮会对调源/目标格式,并把当前输出填入输入框,方便往返转换与校验。
类型会丢吗?
多数标量能忠实保留,但 YAML 的隐式类型推断和 TOML/XML 对 null 与属性的支持差异,可能让个别值变为字符串,转换后建议核对关键字段。
数据会上传吗?
不会。所有解析与序列化都在你的浏览器本地完成,适合处理含敏感字段的配置或接口数据。
转换后字段丢失或层级被展平,怎么办?
两种格式对嵌套的表达能力不同,扁平格式无法表示深层结构,因此转换必然涉及取舍。转换前应明确嵌套字段的映射方式:展开成多列、序列化为一段文本、还是拆成多行。若使用自动转换,务必逐项核对嵌套层级是否被展平,而不是只确认「能被解析」,因为解析成功与信息完整是两件事。
同一份数据在 JSON/YAML/TOML 之间来回转,内容变了吗?
语义等价,但表示形式会变:键顺序保持、引号策略不同、日期与多行文本的写法不同。只要源格式解析正确,来回转换不会丢数据;唯一例外是 YAML 的锚点与注释会丢失(JSON/TOML 没有对应概念)。