100% ローカル — データがブラウザの外に出ることはありません

JSONをYAMLに変換|設定ファイルにそのまま貼れる形で出力

JSONをYAMLに変換します。字下げは選べ、紛らわしい値には引用符が付き、Docker Compose や GitHub Actions の設定にそのまま貼れる形で出てきます。

高速 プライベート Cookieゼロ
インデント

JSON 入力

YAML 出力

このツールの動作

YAML は JSON の上位集合なので、対応は素直です。オブジェクトはマッピングに、配列はシーケンスになり、各スカラーは型を保ちます。

{ "name": "Ada", "tags": ["math", "engine"], "active": true }
name: Ada
tags:
  - math
  - engine
active: true

意味が変わるところは引用する

{ "country": "NO", "flag": "yes", "at": "12:30" }
country: "NO"
flag: "yes"
at: "12:30"

素のまま書けば、この三つは YAML 1.1 の解析器に偽、真、750 と読まれます。1.1 を実装するのは PyYAML であり、世界の非常に多くが YAML を読むのに使っているのがその PyYAML です。国コードが繰り返し真偽値になってしまうことから、ノルウェー問題と呼ばれます。

ここでは値が JSON から文字列として届くので、それが何かに曖昧さはありません。引用することが、どの読み手にとっても文字列のまま保つ唯一の書き方です。本物の真偽値は素のままです。true は true のままです。

長い識別子は桁を保つ

{ "id": 12345678901234567890 }

は二十桁のまま出ます。多くの変換器はまず JSON を JavaScript の値へ解析するので、すべての数値が倍精度浮動小数点を通り、十五桁ほどを超えると黙って丸められます。ここでは数値をそれが実際にそうであるところの文字列として読みます。

複数行の文字列はブロックスカラーになる

改行を含む文字列は、\n ではなく YAML の読みやすいブロック形式で書きます。

description: |-
  一行目
  二行目

渡らないもの

コメントとアンカーです。JSON にはどちらもないので、運ぶものがありません。それらを足すと称する変換器は、あなたのファイルの注釈を捏造することになります。それは人の仕事です。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

なぜ国コードの NO に引用符が付くのですか。
素の `NO` は、YAML 1.2 の読み手には文字列 `NO`、1.1 の読み手には真偽値の**偽**だからです。そして世界の非常に多くが使う PyYAML は 1.1 を実装しています。ここでは値が JSON の文字列として届くため、それが何であるかは分かっています。引用符は、それを文字列のまま保つ唯一の書き方です。
二十桁の ID は残りますか。
残ります。数値をそれが実際にそうであるところの文字列として読むので、`12345678901234567890` は二十桁のまま出ます。当たり前のことではありません。`JSON.parse` なら先に `12345678901234567000` へ丸めます。多くの変換器がこの値を失うのはそのためです。
出力にコメントやアンカーを入れられますか。
入れられませんし、どんな道具にも入れられません。JSON にはどちらもないので、運ぶものがありません。誰も書いていないコメントを変換器が作り出すことはできません。注釈付きの YAML が要るなら、変換したあとにコメントを書き、それ以降は YAML を原本にしてください。

関連ツール