# YAML・TOML・JSON 変換

JSON・YAML・TOML を相互に変換したり、文書を検証して整形したりします。エラーは行と列で表示します。

https://codeknife.dev/ja/yaml-toml-json-henkan/

## できること

文書を JSON・YAML・TOML の間で双方向に変換します。両方に同じ形式を選ぶと、検証と整形を行います。構文エラーには、見つかった行と列が付きます。

## 使い方

1. 文書を貼り付けるか、ファイルをドロップします。
2. **変換元**に文書の形式、**変換先**に欲しい形式を選びます。両方に同じ形式を選ぶと検証と整形になります。
3. インデントを選び、結果をコピーまたはダウンロードするか、**出力を入力として使う**で向きを入れ替えます。

## 例

YAML の `name: codeknife` と `ports: [80, 443]` は、JSON では `{"name": "codeknife", "ports": [80, 443]}`、TOML では `name = "codeknife"` と `ports = [ 80, 443 ]` になります。

## 知っておくと便利なこと

- YAML はバージョン 1.2 として読み込みます。真偽値は `true` と `false` だけなので、`yes` や `on` は文字列のままです。`---` で複数に分かれた文書、重複キー、エイリアスが多すぎる文書は拒否します。
- TOML は最上位にテーブルが必要で、null がありません。リストや null を TOML に変換すると、パスを示すエラーになります。
- TOML の日付は、TOML を整形するときは日付のままで、JSON や YAML に変換すると文字列になります。
- コメントは変換で保持されません。JSON にコメントがなく、読み込んだデータにも含まれないためです。

## 変換せずに検証や整形をするには？

変換元と変換先に同じ形式を選びます。文書は厳密に読み込まれるため、誤りは行と列つきで報告され、有効な文書は統一されたインデントで書き戻されます。

## よくある質問

### YAML で yes・no・on が文字列のままなのはなぜですか？

このツールは YAML 1.2 を読み込み、真偽値は true と false だけです。yes・no・on・off は、古い YAML 1.1 のパーサーと違い、ただの文字列のままです。

### すべての JSON 文書が TOML にならないのはなぜですか？

TOML は最上位がテーブルで、null がありません。最上位のリストや、どこかにある null は、黙って消さずにパスを示すメッセージで拒否します。

### このツールはデータをどこかに送信しますか？

いいえ。すべてブラウザ内で行われます。入力した内容が当社のサーバーに送信されることはありません。