YAML を JSON に 変換
YAML設定ファイルを高精度でJSONに変換します。ブラウザ上で完結するため、機密性の高い設定ファイルも安全に処理できます。
YAML設定ファイルを高精度でJSONに変換します。ブラウザ上で完結するため、機密性の高い設定ファイルも安全に処理できます。
YAML と JSON は密接に関連した形式であり、JSON は技術的には YAML 1.2 の厳密なサブセットであり、通常、両者間の変換は簡単です。 YAML は、コメント、エスケープなしの複数行文字列、アンカーおよびエイリアス参照、より柔軟な引用、自然なドキュメント レイアウトに似たインデント ベースの構造など、JSON にはない人間にとって使いやすい機能を追加します。このため、構成ファイル (Kubernetes マニフェスト、GitHub Actions ワークフロー、Docker Compose) では YAML が一般的な選択肢となり、API ペイロードでは JSON が主流になります。
YAML を JSON に変換するということは、通常、YAML の人間に優しい追加機能を放棄し、機械がより簡単に解析できる形式、つまり HTTP API の共通語となる形式を使用することを意味します。コメントは削除されます (JSON にはコメントはありません)。アンカー参照は、その参照対象の値に解決されます。複数行の文字列は、改行が埋め込まれた標準の JSON 文字列に折りたたまれます。
このコンバータは、JavaScript で最も広く使用されている YAML ライブラリである js-yaml を使用して YAML を解析します。出力は、オプションのインデントを含む JSON.stringify を使用して生成されます。変換では、フロー スタイル、ブロック スタイル、スカラー、シーケンス、マッピング、アンカー、エイリアス、標準タグ タイプを含むすべての標準 YAML 1.2 構文が処理されます。
ほとんどの API と多くのプログラミング環境は JSON を想定しています。 JSON のみを受け入れるコードまたはサービスと統合する場合、YAML で記述された構成ファイルを JSON に変換する必要があります。 JSON 用のツールも豊富です。jq、JSON パス、JSON スキーマ、バリデーターとトランスフォーマーの広範なエコシステムはすべて JSON 入力を前提としています。
JSON は、YAML とは異なる点で明確です。 YAML の柔軟性は、驚くべき解析を生み出します。YAML 1.1 では、「no」のような文字列がブール値 false として解析され、バージョン文字列が浮動小数点数として解析され、インデント エラーがサイレント構造の変更を引き起こします。 JSON に変換すると、データは曖昧さの少ない形式に固定されます。
YAMLを貼り付けてJSONを取得します。
js-yaml は、YAML 1.1 の癖 ('no'-as-false 問題、0o プレフィックスのない 8 進数) のオプションのサポートを備えた YAML 1.2 を実装します。パーサーは、ネイティブ型 (数値、文字列、ブール値、null、配列、プレーン オブジェクト) を使用して JavaScript オブジェクト ツリーを生成します。
JSON.stringify は、オブジェクト ツリーを JSON にシリアル化します。オプションのインデントにより、きれいに印刷された出力が生成されます。これがないと、結果はコンパクトな単一行 JSON になります。特別な値 (NaN、無限大、未定義) は有効な JSON ではありません。コンバーターは、存在する場合にはそれらを null に強制します。
エッジケース: YAML タイムスタンプは JSON 内の ISO-8601 文字列になります。 YAML バイナリ データ (base64 エンコード) は文字列になります。 JSON には参照構文がないため、アンカーとエイリアスは JSON 内の重複値に解決されます。