JSONからYAMLへ

JSONを貼り付け、クリアなYAMLデータを返します。適切な2スペースインデントが採用され、文字列は必要に応じてのみ引用符で囲まれ、複数行の値はブロックスカラーとして表示されます。また、アルファベット順でのキー並べ替えもオプションで可能です。APIのレスポンスをKubernetesマニフェスト、GitHub Actionsの設定ファイル、その他のYAMLネイティブなツール向けに変換するのに便利です。

JSONをYAMLに変換する方法

  1. 1

    JSONを貼り付けます

    有効なすべてのJSON形式です。コンバーターは意味構造を正確に保持します。

  2. 2

    インデントとスタイルを選択します

    2または4つのスペース、コンパクトな配列/オブジェクトにはフロースタイル、長文にはブロックスタイルを使用します。

  3. 3

    オプション:並べ替えキー

    アルファベット順で並べ替えると、2つのバージョン間でのYAMLの変更点比較がより簡単になります。

  4. 4

    YAMLをコピーします

    `.yaml`/`.yml`ファイルに貼り付けてください。出力は有効なYAML 1.2です。

入力:

{
  "name": "hyperion",
  "replicas": 3,
  "env": { "DEBUG": "false", "LOG_LEVEL": "info" },
  "command": ["php", "artisan", "queue:work"]
}

出力:

name: hyperion
replicas: 3
env:
  DEBUG: "false"
  LOG_LEVEL: info
command:
  - php
  - artisan
  - queue:work

タイプマッピング

JSON YAML
文字列 必要に応じて引用符なし、引用符あり、またはブロックスカラー
整数 42
数値 3.14
真偽値 true / false
null null(または~、または空)
配列 -またはフロー[...]を含むブロック配列
オブジェクト key: value を使用したブロックマッピング、または {...} のフローによるマッピング

文字列に引用符が必要な場合

YAMLでは、一部の文字列を非文字列として自動的に解釈します。このような形式の値には引用符が必要です:

なぜ引用符が必要か
yesnoonoff 真偽値として解釈される(YAML 1.1互換)
nullNullNULL null として解釈される
1.23 数値として解釈されます
2026-04-18 日付として解釈されます
先頭/末尾の空白 削除されます
*&!から開始します YAMLディレクティブ

コンバーターはこれらを自動的に引用し、読みやすさのため残りの部分は引用しないようにします。

YAMLとJSONの設計上の違い

  • コメント:YAMLではコメントがサポートされています(#)、一方でJSONではサポートされていません。
  • アンカー/エイリアス:YAMLは相互参照(&anchor/*alias)をサポートしていますが、JSONではデータが繰り返されます。変換処理ではこれらを自動的に推定できないため、必要に応じて手動で追加してください。
  • 複数行の文字列:YAMLにはブロックスカラーが存在する(|では改行が保持され、>では改行が折り返される)。コンバーターはこれらの構造を長文の文字列処理に使用する。
  • ヌル表現:YAMLではnull~、または空の値を指定できます。コンバーターはデフォルトでnullを出力します。

よくある間違い

  • YAML 1.1の「ノルウェー問題」:引用符のないNOはYAML 1.1では真偽値のfalseになります。最近のパーサーはほとんどがYAML 1.2で、true/falseだけが真偽値ですが、一部の古いツールでは今でも問題になることがあります。
  • 値内の末尾の空白。 YAMLではブロックスカラーでは空白を保持するが、プレーンスカラーでは除去します。取得した形式が不明な場合は予期しない結果となる可能性があります。
  • タブのインデント設定。 YAMLではタブのインデントは禁止されています。常にスペースを使用してください。
  • 非常に長い単一文字列の場合。 可読性を高めるために、ブロックスカラーに分割します。この処理は設定可能な閾値を超える場合にコンバーターが自動的に実行します。

よくある質問

他のYAML型(ブール値、数値、日付、null)に似た文字列は、文字列として保持するには引用符が必要です。特殊文字(先頭の空白や印刷不能な文字)を含む文字列も引用処理が必要です。コンバーターは必要に応じて自動的に文字列を引用します。

デフォルトではYAML 1.2が使用されます。YAML 1.1との互換性が必要な場合(古いツールや一部のCIシステムなど)、「YAML 1.1互換性」を有効にすると、コンバーターはYAML 1.1ではブール値となる値(yesnoonoff)に対して追加の引用記号を付加します。

はい。Flowスタイル([1, 2, 3]および{ a: 1 })はコンパクトな配列やオブジェクト向けに利用可能です。ほとんどの設定ファイルでは可読性を考慮してブロックスタイルが推奨されています。

はい、ただし一つ注意点があります。K8sのYAMLでは、JSONでは表現できないコメントやアンカーが頻繁に使用されます。データの形を変換した後、手動でコメントやアンカーを追加してください。

関連ツール

このツールは他の言語でも利用できます