100% ローカル — データがブラウザの外に出ることはありません

YAMLをTOMLに変換|設定ファイルを書き直さず移し替える

YAMLの設定をTOMLに変換します。入れ子の写像はテーブルになり、Cargo や pyproject など TOML を読む道具に、書き直さずそのまま渡せます。

高速 プライベート Cookieゼロ

YAML 入力

TOML 出力

このツールの動作

入れ子のマッピングはテーブルに、マッピングの並びはテーブルの配列になります。

db:
  host: db.example.com
  pool:
    size: 10
servers:
  - name: a
  - name: b
[db]
host = "db.example.com"

[db.pool]
size = 10

[[servers]]
name = "a"

[[servers]]
name = "b"

TOML が持てない三つのもの

null。 TOML に空値はありません。キーを落とせばファイルの意味が変わり、"" を書けば値を発明することになります。変換は止まり、どのキーかを告げます。

根の並び。 TOML のファイルはテーブルそのもので、最上位は常にキーと値の組です。根がシーケンスの YAML 文書には、それらの置き場がありません。並びに名前を付ければ変換できます。

複数の文書。 --- は YAML の文書を区切りますが、TOML に区切りはなく、「ここから別のファイル」と言う方法もありません。一つずつどうぞ。

日付は文字列のまま

2026-01-01 は文字列として届きます。YAML 1.2 がそう読むからです。そして引用符付きの文字列として出ます。

TOML には確かに日付型があります。それを使うことは、著者が日付のつもりだったと決めることです。そうである場合もあります。2026-01-01 が製品コードやフォルダ名、版番号である場合もあります。外せばテキストが日時に変わり、その変化は、下流のどこかが並べ替えを始めるまで誰も気づきません。

長い整数について一つ

十五桁ほどを超える整数は、途中で丸められます。この変換は JSON を経由し、JSON の数値は倍精度浮動小数点だからです。桁が失われるのはそこです。

yaml-to-json 自体は桁を正確に保ちます。書かれたとおりに読むからです。丸めが起きる境界は json-to-… のすべての変換が共有するもので、ここで取り繕うのではなく、そちらで扱います。それまでは、二十桁の識別子があるなら YAML の側で引用符を付けてください。文字列としてそのまま渡ります。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

なぜ null は省略ではなく拒否なのですか。
TOML に null がなく、ごまかす方法が二つともに誤りだからです。キーを落とせばファイルの意味が変わります。設定が無いことと、設定が何もない値であることは別です。空文字列を書けば、元になかった値を作ることになります。変換は止まり、どのキーかを告げます。決めるのはあなたです。
なぜ根が並びだと変換できないのですか。
TOML のファイルはテーブルだからです。最上位は常にキーと値の組です。根がシーケンスの YAML 文書には、それらを掛ける先がありません。`items:` のように並びに名前を与えれば、テーブルの配列になります。
なぜ日付が引用符付きの文字列で出るのですか。
届いた時点でそうだったからです。YAML 1.2 は `2026-01-01` を文字列として読みます。TOML の日付として書けば、著者が日付のつもりだったと推測することになり、外せば `2026-01-01` という製品コードが日時に変わります。引用符付きの文字列は、ファイルにあったものをそのまま保ちます。

関連ツール