YAML TOML 変換器
YAMLとTOMLを即座に双方向変換。ネストオブジェクト・配列・一般的なデータ型対応。無料、ブラウザ内で処理、アップロード不要。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
変換例
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ドキュメントずつ変換してください。
データはサーバーに送信されますか?
いいえ。すべての変換処理はブラウザ内で完結します。データがデバイスから外に出ることはありません。