データ形式変換

概要

シリアライゼーション形式変換ツールは、XML、JSON、TOML、CSV、YAMLの5形式間でテキストを相互変換します。左側にデータを貼り付け、変換元と変換先の形式を選択すると、右側に変換結果が即座に表示されます。自動検出オプションを使うと入力の構造からフォーマットを推定し、形式不明のconfigファイルを受け取ったときでも処理を始められます。

JSON・YAML・TOMLで同じデータをどう表現するか

同じ設定オブジェクトを3形式で比較すると、変換時に何が変わるかがよくわかります。

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

CSVは平坦なテーブルしか表現できない

CSVは二次元形式です。ネストされたJSONやYAMLをCSVに変換すると、内部オブジェクトはserver_hostserver_portのような列名に展開されます。深いネストは列名が長くなったり曖昧になったりし、配列やオブジェクトの値は欠落するかテキスト化されます。逆方向(CSV→JSON)では各行がオブジェクトとして読み込まれ、すべての値は文字列になります。数値は自動的に数値型に変換されません。

自動検出が失敗するとき

自動検出はフォーマットの特徴をヒューリスティックに判定します。<で始まる入力はXML、{または[はJSON、=を含む行はTOML、---またはインデントされたオブジェクトはYAMLと判断します。入力が曖昧な場合(空のオブジェクト{}、単一文字列、空白のみ)はフォーマットを特定できないと表示されます。その場合は手動で変換元形式を選んでください。

変換エラーの対処

「Conversion failed」は、入力データが選択した形式として無効な場合に表示されます。頻度の高い原因は以下の通りです。

  • YAMLのインデント不一致 — YAMLは各レベルで同じ数のスペースが必要です。タブとスペースの混在は必ず失敗します
  • TOMLの重複キー — 同じテーブル内に同じキーが2回現れることは許可されません
  • XMLの閉じタグ欠落 — 閉じタグのない要素や引用符のない属性値があるとパーサーが失敗します
  • JSONの末尾カンマ — 配列やオブジェクトの最後の要素の後にカンマがあるのは無効です
  • CSVの改行を含むフィールド — 改行を含むフィールドはダブルクォートで囲む必要があります

すべての変換はブラウザ内でローカルに処理されます。入力データはサーバーに送信されません。