YAML TOML 変換器

YAMLとTOMLを即座に双方向変換。ネストオブジェクト・配列・一般的なデータ型対応。無料、ブラウザ内で処理、アップロード不要。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
YAML と TOML の欄全体を、ラベルとテキストを保って入れ替えます。新しい先頭の欄にフォーカスが移ります。待機中の変換は取り消し、入れ替え自体では変換しません。
両方の欄、ステータス、待機中の変換をクリアします。ツール内では Ctrl+L(Mac は ⌘+L)でもクリアできます。
ルートがマッピングの YAML 文書を1つ貼り付けます。入力を止めて0.3秒後に TOML が更新されます。TOML で元の値を保てない場合は変換を止め、フィールドのパスを示します。
YAML 欄の現在のテキストを、編集した内容も含めてすべてコピーします。空の欄はコピーできません。
TOML を貼り付けます。入力を止めて0.3秒後に YAML がスペース2個のインデントで更新されます。長い行は折り返し形式にせず、YAML で元の値を保てない場合は変換を止めます。
TOML 欄の現在のテキストを、編集した内容も含めてすべてコピーします。空の欄はコピーできません。
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

変換例

YAML入力

database:
  host: localhost
  port: 5432
  enabled: true
tags:
  - web
  - backend

TOML出力

tags = [ "web", "backend" ]

[database]
host = "localhost"
port = 5432
enabled = true

日付と時刻

YAML のタイムスタンプは文字列ではなく TOML の日付として書き出します。

release:
  date: 2026-10-01
  at: 2026-10-01 09:30:00 +9
  utc: 2026-10-01T00:30:00Z
  label: "2026-10-01"
  ratio: .inf
[release]
date = 2026-10-01
at = 2026-10-01T09:30:00.000+09:00
utc = 2026-10-01T00:30:00.000Z
label = "2026-10-01"
ratio = inf

日付だけなら TOML のローカル日付になります。日時はオフセットを残して +09:00 と書きます。オフセットのない日時は Z を付けます。YAML のタイムスタンプ型はこれを UTC と定めているためです。引用符付きの “2026-10-01” は文字列のまま、.inf は TOML の inf になります。TOML の日付はミリ秒までなので、09:30:00.123456Z のように細かいタイムスタンプや、2026-02-31 のような存在しない日付があると変換を止めます。

逆方向では、TOML パーサーがミリ秒より下の桁を切り捨てるため、より細かい時刻があると TOML → YAML を止めます。[build] テーブルの started = 2026-10-01T09:30:00.123456Z は 変換していません:YAML では次の値を変えずに表せません:/build/started:2026-10-01T09:30:00.123456Z はミリ秒より細かい精度を持っています になります。TOML のローカル日時にはオフセットがなく、YAML はオフセットのないタイムスタンプを UTC として読むため、[build] テーブルの started = 2026-10-01T09:30:00 も 変換していません:YAML では次の値を変えずに表せません:/build/started:2026-10-01T09:30:00 はローカル日時です。YAML はオフセットのない日時を UTC として読みます で止まります。YAML → TOML では、YAML の -0.0 は符号を保ったまま TOML の -0.0 になり、ratio: 1.0 のような値が整数の浮動小数点数も浮動小数点数のまま(ratio = 1.0)書き出します。

TOML で表せない値

変換で値が変わる場合は何も変換せず、ステータス行に各フィールドを JSON Pointer で示して理由を書きます。

service:
  id: 9007199254740993
  owner: ~

変換していません:TOML では次の値を変えずに表せません:/service/id:整数 9007199254740993 は ±(2^53 − 1) を超えるため、JavaScript では丸められます;/service/owner:null — TOML には null がありません

TOML パネルは空になり、コピーボタンは無効になるので、古い結果を誤ってコピーすることはありません。大きな ID は引用符で囲み(id: "9007199254740993")、null を置き換えるか削除してから変換し直してください。−(253 − 1) から 253 − 1 までの整数はそのまま変換されます。

制限事項

  • ルートはマッピング、文書は 1 つだけです。--- で区切った複数文書は expected a single document in the stream, but found more になります。
  • 大きな整数はどちらの方向でも止まります。TOML → YAML では big = 9007199254740993 が integer value cannot be represented losslessly となり行が示されます。YAML → TOML では上のようにフィールドを示します。
  • js-yaml の処理上限。js-yaml 4.3.2 は、ネストが 100 階層を超える文書、マージキー(<<)で処理するマッピングとキーが合計 10,000 個を超える文書、1 つのマージキーに 100 個を超えるマッピングを並べた文書を止めます。エラーには上限と行・列が出ます。
  • コメントは残らず、アンカーは展開されます。

YAMLとTOMLの違い

YAMLはインデントベースの構文で可読性が高く、Docker Compose・Kubernetes・GitHub Actionsなどのアプリケーション設定に広く使われています。 TOMLはRust(Cargo.toml)・Python(pyproject.toml)・HugoやZolaなどのツールの標準設定形式です。 本ツールは両形式に共通するデータ型を相互変換します。

FAQ

どのデータ型に対応していますか?

文字列・整数・浮動小数点数(inf と nan を含む)・真偽値・配列・ネストオブジェクト・日付を双方向に変換します。YAML の日付(2026-10-01 など)は TOML のローカル日付に、YAML の日時はオフセット付きのまま書き出します。YAMLアンカー・エイリアスは変換前に展開されます。TOMLの日時は引用符なしのISO 8601値(例:2026-10-01T09:30:00.000+09:00)として書き出され、YAMLパーサーは通常タイムスタンプとして読み込みます。

YAMLからTOMLへの変換に失敗するのはなぜですか?

TOMLはルートドキュメントがキーと値のマッピングである必要があり、ルートがリストやスカラーのYAMLは変換できません。また、変換で値が変わる場合は変換せず、各フィールドをパス(/service/owner など)で示します。対象は null(TOML に null はない)、±(2^53 − 1) を超える整数、ミリ秒より細かいタイムスタンプ、存在しない日付です。このとき TOML パネルは空になり、変換できる入力になるまでコピーボタンは無効です。

YAMLの複数ドキュメントストリームはサポートされますか?

いいえ。単一ドキュメントのYAMLのみ対応しています。---で区切られた複数ドキュメントを貼り付けると「expected a single document in the stream」エラーになるため、1ドキュメントずつ変換してください。

データはサーバーに送信されますか?

いいえ。すべての変換処理はブラウザ内で完結します。データがデバイスから外に出ることはありません。