YAML Formatter:YAMLの検証と整形
無料、登録不要。YAML formatterがブラウザでYAMLを整形・検証・JSON変換。インデント設定可能、ダウンロード対応。
YAML Formatterとは?
YAML Formatterは、YAMLテキストをパース、検証し、一貫した設定可能なインデントで再シリアライズするブラウザベースのツールです。YAMLのインデント依存構文は、1つのブロックのずれがドキュメント全体の意味を変えたり、目視では見つけにくいエラーを引き起こす可能性があります。このツールはそのような問題を即座に検出し、好みのスタイルに合ったクリーンな出力を生成します。
基本的な整形に加え、YAMLを直接JSONに変換できます。APIやツールがJSONを必要としているがソース設定がYAMLの場合、またはYAMLが期待するデータ構造にパースされることを確認したい場合に便利です。両操作ともjs-yamlライブラリを使用してブラウザで完全に実行されます。データはマシンから出ず、アカウント不要、無料です。
主な機能
- 正しいインデントでYAMLを整形 —
js-yamlで入力をパースし、選択したインデントサイズで再出力します。lineWidth: -1オプションによりフォーマッターが長い文字列に改行を挿入するのを防ぎ、noRefs: trueによりアンカーとエイリアスを完全な値に展開します。 - エラーメッセージ付きYAML構文検証 —
js-yamlがパースエラーをスローした場合、正確なエラーメッセージ(行番号を含む)が出力パネルの下に表示されます。エラーにはアクセシブルなrole="alert"属性が使用されます。 - YAMLをJSONに変換 — YAMLをパースし、選択したインデントで
JSON.stringifyを使用してJSON形式で結果をシリアライズします。ダウンロードロジックは出力が{または[で始まるかを検出し、自動的に.json拡張子でファイルを保存します。 - 整形済み出力をクリップボードにコピー — Clipboard APIをtextareaフォールバック付きで使用します。
- .yamlまたは.jsonファイルとしてダウンロード — 出力がJSON(変換操作から)の場合、ファイルは
formatted.jsonとして保存されます。出力がYAML(整形操作から)の場合、formatted.yamlとして保存されます。 - キーボードショートカット — Ctrl+Enter(Cmd+Enter)で整形、Ctrl+Shift+J(Cmd+Shift+J)でJSON変換。
YAML Formatterの使い方
ステップ1:YAMLを貼り付ける
/developer/code/yaml-formatterのツールに移動します。左側の入力パネルにYAMLを貼り付けます。テキストエリアはモノスペースでサイズ変更可能です。ブラウザのメモリに収まる任意のサイズのYAMLドキュメントが受け付けられます。ツールはサイズ制限を設けていません。
ステップ2:インデントを選択する
パネル下のアクションバーにあるインデントドロップダウンを開きます。2スペースまたは4スペースを選択します。選択内容はFormat出力とJSON変換出力の両方に影響します。2スペースインデントはYAMLコミュニティの標準で、Kubernetesマニフェスト、Ansibleプレイブック、ほとんどのCI/CDパイプラインファイルで使用されています。4スペースインデントはPythonやJavaプロジェクトの規約に合わせています。
ステップ3:整形または変換する
右パネルに正規化されたYAML出力を生成するにはFormatをクリック(またはCtrl+Enter / Cmd+Enterを押す)します。同等のJSONドキュメントを生成するにはTo JSONをクリック(またはCtrl+Shift+J / Cmd+Shift+Jを押す)します。
入力例:インデントが不統一なKubernetes Deploymentマニフェスト:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-frontend
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
2スペースインデントでFormat後の出力:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-frontend
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
ステップ4:JSONに変換する(オプション)
入力に同じYAMLを入れた状態でTo JSONをクリックします。出力パネルに同等のJSONドキュメントが表示されます:
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "web-frontend",
"labels": {
"app": "web"
}
}
}
(簡略化のため省略。完全なドキュメントにはspecが含まれます)
ステップ5:コピーまたはダウンロードする
出力をクリップボードにコピーするにはCopyをクリックします。ファイルを保存するにはDownloadをクリックします。ツールは出力がJSONのように見えるか({または[で始まるか)に基づいて、自動的に.yamlまたは.jsonをファイル拡張子として選択します。
実用例
CI/CDパイプラインファイルの正規化
GitHub ActionsのワークフローファイルがJ複数の貢献者によって編集されており、インデントが混在しています。フォーマッターに貼り付け、2スペースインデントでFormatをクリックすると、出力全体で一貫したインデントが表示されます。変更をコミットする前に、入力と出力を比較して意味的な差異が生じていないことを確認してください。YAMLはインデント依存のため、再整形によって元のファイルに隠れていたアライメントバグが露出する可能性があります。
設定構造の検証
Node.jsアプリケーションの設定ファイルをYAMLでデプロイしているが、ランタイムはJavaScriptオブジェクトとして読み込みます。設定を貼り付けTo JSONをクリックします。JSONの出力により、型変換(bare true/false → boolean、引用符なし数値 → 数値)を含めてパースされたオブジェクトの正確な形がわかります。port: 8080のような値が数値であり、文字列"8080"でないことが確認できます。
入力:
server:
host: 0.0.0.0
port: 8080
debug: false
database:
url: postgres://localhost:5432/myapp
pool: 10
JSON出力:
{
"server": {
"host": "0.0.0.0",
"port": 8080,
"debug": false
},
"database": {
"url": "postgres://localhost:5432/myapp",
"pool": 10
}
}
YAMLアンカーの展開
YAMLは値の再利用のためのアンカー(&)とエイリアス(*)をサポートしています。フォーマッターはnoRefs: trueを使用するため、すべてのエイリアスは出力で完全な値に展開されます。これにより整形されたドキュメントが自己完結的になり、アンカーをサポートしないツールでも読みやすくなります。
ヒントとベストプラクティス
フォーマッターはキー順序を保持します。 js-yamlのダンプオプションにはsortKeys: falseが含まれているため、キーの並び順は整形後の出力でそのまま維持されます。これはKubernetesやAnsibleのドキュメントにとって重要で、技術的に必須でなくてもフィールドの順序が慣習的な意味を持ちます。
長い文字列は折り返されません。 lineWidth: -1設定により自動的な行折り返しが無効になります。複数行の文字列や長い値は、任意の列で折り返されるのではなく、1行のままになります。折り返しが必要な場合は、結果をコピーしてエディタで折り返しを適用してください。
バージョン管理にコミットする前に検証する。 YAMLのインデントエラーはCIの失敗の一般的な原因です。プッシュする前にパイプラインファイルをこのフォーマッターで処理してください。エラーメッセージなしのクリーンな整形パスは、YAMLが構文的に正しいことを確認します。
ダウンロード時のファイル拡張子を確認する。 ダウンロードロジックは実行した操作ではなく出力内容を検査します。YAMLを整形して、そのYAMLがたまたま{で始まる場合(一部のYAMLファイルはJSON互換構文を使用)、ファイルは.jsonとして保存されます。必要に応じてリネームしてください。
YAMLのbooleanは厳格です。 YAML仕様はYAML 1.1でtrue、false、yes、no、on、offをboolean値として認識します。js-yamlライブラリはデフォルトでYAML 1.2に従い、trueとfalseのみがbooleanです。YAMLでyes/noを使用している場合、フォーマッターはそれらを通常の文字列として扱います。
よくある問題とトラブルシューティング
行番号と列番号を含むエラーメッセージ — js-yamlのパースエラーには問題の正確な場所が含まれます。入力の指定された行を確認してください。一般的な原因:スペースの代わりにタブをインデントに使用(YAMLはタブを許可しない)、引用符なしの文字列内のコロン(例:url: http://example.comはurl: "http://example.com"またはブロックスカラーを使用する必要がある)、または不正なネストレベル。
入力にあった値が出力に含まれない — YAMLでjs-yamlが認識しない!!型タグ(例:!!binary、!!timestamp)を使用している場合、それらの値が削除または変換される可能性があります。特定の値を確認して型タグを特定し、必要に応じて値を引用符で囲んでください。
"Please enter YAML to format"エラー — FormatまたはConvertをクリックした時に入力フィールドが空またはスペースのみでした。まず入力パネルにYAMLを貼り付けてください。
変換されたJSONに予期しないnull値がある — ~のYAML値や空の値(コロン後に値のないキー)はJSONでnullになります。これは正しい動作でYAML仕様と一致します。文字列"~"や空文字列""を意図していた場合は値を引用符で囲んでください。
ダウンロードが.yamlではなく.jsonとして保存される — ダウンロードハンドラーは出力が{または[で始まるかを確認します。一部のYAMLドキュメントはJSON互換YAML構文で書かれており、波括弧で始まります。この場合、保存後にダウンロードしたファイルを.yamlにリネームしてください。
プライバシーとセキュリティ
YAML Formatterはjs-yamlライブラリを使用してすべての入力をブラウザ内でローカルに処理します。貼り付けたテキスト(データベース接続文字列、APIトークン、秘密鍵、個人設定データを含む)はどのサーバーにも送信されません。ページ読み込み後はネットワーク接続なしで動作します。整形操作に関するセッショントラッキングはありません。
よくある質問
YAML Formatterは無料ですか? はい、使用制限なしで完全無料です。すべての整形・検証・変換操作が無料で利用できます。Glyph Widgetsのサポーター機能(保存済みプリセット、セッション履歴、ツールメモ)はKo-fiサポーターが利用できますが、YAMLのコア機能には何も必要ありません。
オフラインで動作しますか? はい。すべての処理はブラウザで実行されます。ページを読み込んだ後は、インターネットから切断してもフォーマッターとコンバーターを引き続き使用できます。
データは安全ですか? はい。YAML入力はサーバーに送信されることはありません。ブラウザのメモリにのみ存在し、Clearをクリックするかタブを閉じると消去されます。
フォーマッターはYAMLマルチドキュメントファイル(複数の---セクション)をサポートしますか? js-yamlのload関数はストリームの最初のドキュメントをパースします。マルチドキュメントのYAMLファイル(---で区切られた)は最初のドキュメントのみ整形されます。マルチドキュメントファイルにはyaml.loadAllの動作を使用してください。ただし、このツールは現在最初のドキュメントのみを処理します。
FormatとTo JSONの違いは何ですか? Formatはパースされたデータを一貫したインデントでYAMLとして再シリアライズします。To JSONは同じパースされたデータをJSONドキュメントとしてシリアライズします。両操作とも同じパースステップを使用するため、どちらもYAMLを検証し、無効な入力に対して同様に失敗します。
フォーマッターはコメントを保持しますか? いいえ。js-yamlパーサーはパース時にコメントを破棄します。整形後、元の入力のコメントは出力に表示されません。コメントを保持する必要がある場合は、ソースファイルでインデントを手動で編集してください。
JSONをYAMLに変換できますか? このツールはYAMLをJSONに変換します。逆方向の変換には、JSON-to-YAML変換をサポートする近日公開: JSON Converterツールを使用してください。
ツールはどのYAMLバージョンをサポートしていますか? js-yamlライブラリはYAML 1.2を実装しており、YAML 1.1と比べてboolean値やその他の一部のエッジケースについてより厳格です。最近のほとんどのYAMLファイル(Kubernetes、Docker Compose、GitHub Actionsなど)はYAML 1.2互換で書かれています。
JSONへの変換のキーボードショートカットは何ですか? Windows/LinuxではCtrl+Shift+J、macOSではCmd+Shift+JでConvert to JSON操作を起動します。整形にはCtrl+EnterまたはCmd+Enterを押します。
ダウンロード時のファイル拡張子は実行した操作を反映していますか? 直接的にはそうではありません。ダウンロードハンドラーは.jsonと.yamlの判断に出力テキストが{または[で始まるかを確認します。マッピングで始まる整形済みYAML出力は.yamlとして保存され、JSON変換出力(常に{または[で始まる)は.jsonとして保存されます。
関連ツール
JSON Formatter — スキーマ検証、スキーマ生成、インタラクティブなツリービューアでJSONを整形・検証・圧縮。
XML Formatter — 同じインデントコントロールと圧縮サポートでXMLドキュメントを整形・検証。
近日公開: TOML Formatter — TOML設定ファイルを整形・検証。
今すぐYAML Formatterを試す:YAML Formatter