ブログ
日本語

JSON YAML 変換 — JSONをYAMLにオンライン変換

JSONをYAMLに変換(インデント選択・キーの並べ替え・エラー位置表示)

ブラウザー内で処理・アップロード不要

YAML結果

JSON→YAML変換とは

YAMLは人が読み書きしやすいように作られた設定ファイルの形式で、KubernetesのマニフェストやGitHub Actions、Docker Composeなど多くのツールで使われています。APIのレスポンスやJSONの設定をYAMLにしたいときは、ここに貼り付けてください。貼り付けるとすぐに結果が表示されます。

使い方

  1. 入力欄にJSONを貼り付けます。
  2. インデントをスペース2つか4つから選びます。YAMLのツールの多くは慣習としてスペース2つを使います。
  3. すべての階層でキーをアルファベット順にしたい場合は、「キーを並べ替え」をオンにします。
  4. 結果をコピーします。JSONにエラーがあれば、その行と列が表示されます。

仕組み

  • 入力はRFC 8259に準拠した厳密なJSONです。出力はjs-yamlライブラリーで生成し、YAML 1.2のcoreスキーマと互換性のある形にします。
  • true、null、123、007のように別の型として読まれうる文字列には自動でクォートを付けるので、往復しても型が変わりません。
  • 日本語・中国語・絵文字などの文字はエスケープせず、そのまま出力します。
  • 自動の折り返しはオフです。同じ値が何度も出てくる場合も、アンカーとエイリアス(&、*)は使わず、毎回そのまま書き出します。
  • 空の配列は[]、空のオブジェクトは{}と出力します。文字列や数値など、トップレベルがスカラー値でも変換できます。
  • 2^53を超える整数は入力を読み込んだ時点で丸められるため、警告を表示します。

例

入力:

{"name":"app","ports":[80,443],"owner":{"名前":"山田太郎"},"debug":false,"version":"1.0"}

結果:

name: app
ports:
  - 80
  - 443
owner:
  名前: 山田太郎
debug: false
version: '1.0'

よくある質問

YAMLをJSONに戻すと同じデータになりますか?

構造と値は同じに戻ります。"true"や"123"のように別の型として読まれうる文字列にはクォートを付けるので、文字列のまま保たれます。キーの順番は、キーの並べ替えをオンにしない限りそのままです。

長い文章は複数行に折り返されますか?

いいえ。折り返しはオフにしてあるので、文字列は途中で分割されず1行のまま出力されます。改行を含む文字列は、YAMLのブロックスカラーで書かれることがあります。

JSONのエラーはどのように表示されますか?

構文が崩れている最初の文字の行と列を表示します。末尾のカンマやコメントなど、JSONで許可されていない書き方もエラーになります。

大きな整数もそのまま扱えますか?

入力はJavaScriptで読み込むため、9007199254740991(2^53-1)を超える整数は丸められます。その場合は警告が出るので、該当する数値は文字列にしてください。

ほしいツールはありますか?