JSONだけが構造化データの形式ではない。YAML、CSV、XML、TOMLはそれぞれ異なる背景から生まれており、日本の行政システムや金融系サービスには今もXML/SOAPベースのAPIが残っているため、JSONとの相互変換は実務でよく発生する作業だ。
それぞれの形式の役割
- YAML — 波かっこの代わりにインデントを使う。CI/CDパイプライン、Kubernetes、Docker Composeの設定ファイルの標準形式。
- CSV — フラットで表形式、スプレッドシートやデータ分析ツールとの相性が最も良い。
- XML — より古い形式で属性や名前空間を持ち、SOAPサービスや日本の官公庁・金融機関のレガシーシステムで今も使われている。
- TOML — 曖昧さがなく手書きしやすいよう設計されており、RustのCargo.tomlで有名。
変換で失われるもの
すべての変換が同じように安全というわけではない。JSON → CSVはネスト構造を失う — 深いオブジェクトや長さの異なる配列は長方形の表にうまく収まらないため、平坦化や簡略化が必要になる。一方でJSON ↔ YAMLやJSON ↔ TOMLはほぼ常に無損失で変換できる。両方ともJSONと同じようにネスト構造をサポートしているためだ。
YAMLの自動型推論という落とし穴
YAMLのパーサーは引用符のない値の型を推測しようとする。version: 1.20は数値1.2になり末尾のゼロを失うことがあり、NOという文字列はYAML 1.1のルールに従ってブール値falseになることがある — yes/noをブールリテラルとして扱っていたためだ。文字列として残したい値は、JSONに変換する前に明示的に引用符で囲む必要がある。
実務でどう使われるか
- YAMLを期待するツールとJSONを期待するツールの間で設定を移す、またはその逆。
- APIから取得したデータをCSVにエクスポートし、表計算ソフトで手早く確認する。
- XML/SOAPベースのレガシーシステムを現代的なJSON APIとつなぐ。