onlinetools.dev

JSON ↔ YAML ↔ TOML変換

JSON、YAML、TOML を相互変換。フォーマットを自動判別

ローカル実行
loading…
このツールについて

JSON、YAML、TOML の間を任意の方向に変換します。ソース形式は貼り付けるそばから自動検出されます — 角括弧は JSON を、key: のコロンは YAML を、[テーブル] は TOML を示唆します — 曖昧な入力には手動での上書きも可能です。変換は本物のパースを経由するため、出力は行単位のテキスト変換ではなく、正当性が保証されたものです。

各形式には本物の強みがあります。JSON は API と機械間交換に、YAML は人間が編集する設定(Kubernetes、CI パイプライン)に、TOML は型のしっかりした設定ファイル(Cargo、pyproject)に向きます。これらの間でデータを手で移すとインデントやクォートのミスを招きますが、この変換はそれを排除します。

コンバーターは形式の限界について正直です。TOML にはトップレベルの配列も null もなく、そうしたドキュメントの変換では、黙ってデータを落とす代わりに理由を報告します。

よくある質問

コメントは変換後も残りますか?
いいえ — JSON にはコメント構文がなく、変換はパース済みのデータ構造を経由しますが、そこにコメントは載りません。YAML → JSON → YAML と変換するとコメントは不可逆的に失われます。コメントが重要な場合は元のファイルを保管してください。
なぜ YAML の「no」が false になったのですか?
YAML 1.1 は yes/no/on/off をブール値として扱い、国コードの NO が false になるのは有名な話です。ここのパーサーは YAML 1.2(true/false のみ)に従いますが、古いパーサー向けに書かれたファイルはそれでも驚きをもたらすことがあります。ブール値、数値、日付に見える文字列はクォートしてください。
なぜ JSON が TOML に変換できないのですか?
TOML はトップレベルにテーブル(オブジェクト)を要求します — 配列や裸のスカラーは TOML ドキュメントになれません — そして null がありません。データを再構成すれば(配列をキーで包む、null を除去するかデフォルト値にする)変換できます。
YAML は JSON のスーパーセットですか?
実用上はそうです — YAML 1.2 は事実上すべての JSON ドキュメントをパースできます。JSON を YAML 設定に貼り付けるとたいてい動くのはこのためです。逆は成り立ちません。YAML のアンカー、複数行スカラー、タグには JSON の対応物がなく、変換時に展開されるか文字列化されます。
関連ツール