数据格式转换

概述

数据格式转换器可在 XML、JSON、TOML、CSV 和 YAML 五种序列化格式之间互相转换,将结构化文本粘贴到左侧,选定源格式和目标格式后,右侧即时输出转换结果。选择"自动检测"时,工具会尝试解析输入内容并在左侧标注识别到的格式。

JSON → YAML → TOML 转换对照

同一份配置数据在三种格式下的表示差异:

{
  "server": {
    "host": "localhost",
    "port": 8080,
    "tags": ["web", "api"]
  }
}

转换为 YAML:

server:
  host: localhost
  port: 8080
  tags:
    - web
    - api

转换为 TOML:

[server]
host = "localhost"
port = 8080
tags = ["web", "api"]

CSV 转换的结构限制

CSV 是纯扁平格式,只能表示二维表格。把嵌套的 JSON 或 YAML 转为 CSV 时,工具会将内层对象展平成 parent_child 形式的列名,多层嵌套可能导致列名冗长或信息丢失。反向操作(CSV → JSON)会将每行读取为一个对象,所有值均为字符串类型,数字不会自动转型。

自动检测失败的原因

自动检测依赖格式特征的启发式分析:以 < 开头判定 XML,以 {[ 开头判定 JSON,含 = 的行判定 TOML,以 --- 或缩进对象判定 YAML。若输入内容格式特征模糊(例如单行纯字符串、空对象 {}),检测器可能报告"无法自动检测源格式,请手动选择"。此时切换到具体格式即可继续转换。

转换报错时的排查方向

显示"转换失败"时,常见原因按频率排序:

  • YAML 缩进不一致:YAML 严格要求每级缩进使用相同数量的空格,混用 tab 和空格会导致解析失败
  • TOML 键重复:TOML 不允许同一个 table 中出现重复键
  • XML 标签未闭合:缺少结束标签或属性值没有引号
  • JSON 结尾有多余逗号:JSON 不允许末尾逗号(trailing comma)
  • CSV 字段含换行:含换行的字段必须用双引号包裹,否则行计数出错

所有转换在浏览器本地完成,输入内容不会上传到服务器。