JSON→YAML変換

JSONを一瞬で読みやすいYAMLに変換します。

ブラウザ内で動作します。入力した内容はどこにも送信されません。

JSONをYAMLに変換する方法

  1. JSONを貼り付けるかアップロードします。
  2. 入力するとYAMLが表示されます。
  3. コピーするか.yamlファイルをダウンロードします。

JSONからYAMLへの変化

  • 波括弧とカンマがなくなり、代わりにインデントで構造を表します。
  • プロパティ名はクォートを失いますが、コロンなどYAMLがクォートを必要とする文字を含む場合は除きます。
  • JSON配列は、キーの下にインデントされた、項目ごとのハイフン付きの行のリストになります。
  • true、false、nullはどちらの形式でも同じ単語で書かれます。

一部のYAML値がクォートを保持する理由

JSONの値出力形式理由
"007"'007'クォートなしの007は数値の7として読まれるため
"yes"'yes'一部のYAMLリーダーはクォートなしのyesやnoを真偽値として扱うため
"null"'null'クォートなしのnullはnull値として解釈されるため
"2024-01-01"'2024-01-01'一部のリーダーはクォートなしの日付を日付型として解釈するため

YAMLが使われる場面

  • Docker Composeファイル
  • Kubernetesマニフェスト
  • GitHub Actionsのワークフローファイル
  • Ansibleのplaybook

JSON→YAMLが役立つ場面

  • 書き出した設定ファイルを、デプロイツールが実際に読み込む設定形式に変える。
  • 2つのバージョンを比較する前に、APIレスポンスをひと目で見やすくする。
  • 既存のJSONデータから、Helmチャートなどのvaluesファイルの下書きを作る。

JSON→YAMLのFAQ

JSONの代わりにYAMLを使う理由は?

YAMLはほとんどの括弧やクォートを省き、代わりにインデントを使うため、Docker Compose、Kubernetes、GitHub Actionsなどの設定ファイルが手作業で読み書きしやすくなります。

一部の値がクォートで囲まれているのはなぜですか?

クォートがないと別の意味に読まれてしまう文字列はクォートを保持します。例えば'007'は数値の7ではなくテキストのままになり、'yes'も文字列のままになります。

YAMLにコメントを追加できますか?

JSONにはコメントがないため、引き継ぐものはありません。変換後に自分で#を使ってコメントを追加できます。

どのYAML方言で出力されますか?

標準的なYAML 1.2で、多くのNode.jsビルドツールが設定ファイルの読み書きに使うjs-yamlライブラリによって生成されます。

キーの順序は保持されますか?

はい。キーはJSONオブジェクトに現れるのと同じ順序で書き出されるため、両者の差分も追いやすくなります。

トップレベルのJSON配列も変換できますか?

はい。トップレベルの配列は、キーと値のマッピングではなく、ハイフン付き項目のYAMLシーケンスになります。

深くネストしたオブジェクトやオブジェクトの配列も扱えますか?

はい。どんな深さのネストも正しく変換され、js-yamlの標準スタイルに従って各階層が親より2スペース深くインデントされます。

時刻やURLのようにコロンを含む値はどうなりますか?

値全体がクォートで囲まれます。クォートなしでコロンの後にスペースがあると、新しいキーの始まりのように見えてしまうためです。

関連ツール