ToolDeck

YAML→JSON変換

YAMLをJSON形式に変換します

サンプルを試す

YAML Input

JSON Output

ローカルで実行 · シークレットの貼り付けも安全
JSON will appear here…
こちらもどうぞ:YAML to XML

YAMLからJSONへの変換とは?

YAMLからJSONへの変換は、YAML(YAML Ain't Markup Language)で記述されたデータをJSON(JavaScript Object Notation)に変換する処理です。両フォーマットはキーと値のペア、シーケンス、ネストされたオブジェクトとして構造化データを表現できますが、構文が異なります。YAMLはインデントと最小限の句読点を使用し、JSONは波括弧、角括弧、必須の引用符を使用します。異なるフォーマットを要求するシステム間で設定データを移行する際、両者の変換は一般的なタスクです。

YAMLは人間が読みやすいように設計されています。コメント、複数行文字列、アンカー、エイリアスをサポートしており、これらはJSONには存在しません。YAMLをJSONに変換する際、これらのYAML固有の機能は解決されます:アンカーはインラインで展開され、コメントは破棄され、複数行ブロックはエスケープされた文字列になります。出力はあらゆるJSONパーサーが読める有効なJSONです。

YAML 1.2仕様はJSONをYAMLのサブセットとして明示的に定義しており、すべての有効なJSONドキュメントは有効なYAMLでもあります。逆は成立しません。コメント、アンカー、複合キーを使用するYAMLドキュメントには直接のJSON相当がなく、変換時に単純化する必要があります。このツールはその変換を自動的に処理し、有効なYAML入力からクリーンで整形されたJSONを生成します。

YAML 1.2 Specification — yaml.org →

なぜオンラインYAML→JSONコンバーターを使うのか?

YAMLを手動でJSONに変換するのは、特に深くネストされた構造や複数行の値がある場合にエラーが起きやすいです。ブラウザベースのコンバーターなら結果を即座に得られ、アプリケーションに到達する前にYAMLの構文エラーを検出できます。

ブラウザで即時変換
YAMLを貼り付けると数ミリ秒で整形されたJSONが出力されます。CLIツールのインストール、ビルドステップ、依存関係の管理は不要です。
🔀
あらゆる有効なYAML構造に対応
ネストされたマッピング、シーケンス、複数行文字列(リテラルブロック・フォールドブロック)、アンカー、エイリアス、マージキー、YAML 1.2のすべてのスカラー型に対応します。
🔒
データのプライバシーを保護
すべての解析はJavaScriptを使用してブラウザ上でローカルに実行されます。YAMLの内容はサーバーに送信されないため、認証情報や内部パスを含む設定ファイルにも安全に使用できます。
📋
出力形式のコピーと調整
インデントを2スペースと4スペースで切り替えられます。ワンクリックでJSON結果をクリップボードにコピーして、コード、APIリクエスト、設定ファイルに直接使用できます。

YAML→JSONの活用場面

フロントエンド開発
デザインシステムやCMSのYAML設定ファイルをJSONに変換して、JSON入力を要求するJavaScriptバンドラー、REST API、またはi18nライブラリで使用します。
バックエンドエンジニアリング
Spring Bootのapplication.ymlやRailsのdatabase.ymlをJSONに変換して、JSONのみの設定を受け付けるデプロイスクリプト、APIゲートウェイ、またはサービスに渡します。
DevOpsとCI/CD
docker-compose.yml、GitHub Actionsワークフロー、KubernetesマニフェストをJSONに変換して、検証ツール、OPAなどのポリシーエンジン、またはjqを使ったデバッグに活用します。
QAとテスト
YAMLテストフィクスチャをJSON APIペイロードに変換して、Postman、Insomnia、またはJSONリクエストボディを要求する自動テストスイートで使用します。
データエンジニアリング
YAML形式のパイプライン定義(Airflow、dbt、Dagster)をJSONに変換して、スキーマ検証、プログラムによる操作、またはメタデータカタログとの連携に使用します。
学習とドキュメント作成
設定フォーマットを学習したり、ドキュメントを作成したりする際に、YAML構造がJSONと相互にどのようにマッピングされるかを素早く確認できます。

YAML→JSONタイプマッピング一覧

すべてのYAMLデータ型は変換時に特定のJSON型にマッピングされます。以下の表は各YAMLの構文とそのJSON出力を示しています。これらのマッピングを理解することで、YAMLデータが変換後にどのように見えるかを予測でき、真偽値やnull値の扱いで驚くことがなくなります。

YAML型YAML構文JSON出力
Mappingname: Alice{ "name": "Alice" }
Sequence- apple\n- banana["apple", "banana"]
Stringgreeting: hello world"hello world"
Integercount: 4242
Floatratio: 3.143.14
Booleanactive: truetrue
Nullvalue: nullnull
Multiline (|)bio: |\n Line one\n Line two"Line one\nLine two\n"
Folded (>)note: >\n A long\n paragraph"A long paragraph\n"
Anchor/Alias&default\n <<: *defaultResolved inline (no $ref)

YAMLとJSONの構文比較

YAMLとJSONは同じデータモデルを表現しますが、構文ルールが異なります。以下の違いから、コメントやアンカーなどの一部のYAML機能にJSON相当が存在しない理由がわかります。

YAML
ネストにはインデントを使用(波括弧なし)。#でコメントをサポート。文字列は通常引用符不要。|(リテラル)と>(フォールド)のブロックスカラーで複数行の値を表現可能。&名前でアンカー、*名前でエイリアスを定義して再利用できる。YAML 1.2ではtrueとfalseのみが真偽値として認識される。旧YAML 1.1パーサーはyes、no、on、offも受け付けたが、YAML 1.2ではこれらは通常の文字列として扱われる。
JSON
ネストには波括弧と角括弧を使用。コメント構文なし。すべての文字列はダブルクォートが必須。複数行文字列リテラルなし——代わりに\nエスケープシーケンスを使用。アンカー・エイリアスの仕組みなし。真偽値は厳密に小文字のtrueとfalse。すべてのキーはクォートされた文字列でなければならない。末尾のカンマは無効。

コード例

以下はYAMLをプログラムでJSONに変換する実装例です。各例ではYAML文字列を解析して整形されたJSONを出力します。

JavaScript (Node.js)
import { load } from 'js-yaml'

const yamlStr = `
server:
  host: localhost
  port: 8080
  ssl: true
`

const json = JSON.stringify(load(yamlStr), null, 2)
console.log(json)
// → {
// →   "server": {
// →     "host": "localhost",
// →     "port": 8080,
// →     "ssl": true
// →   }
// → }
Python
import yaml, json

yaml_str = """
database:
  host: db.example.com
  port: 5432
  credentials:
    user: admin
    password: s3cret
"""

data = yaml.safe_load(yaml_str)
print(json.dumps(data, indent=2))
# → {
# →   "database": {
# →     "host": "db.example.com",
# →     "port": 5432,
# →     "credentials": {
# →       "user": "admin",
# →       "password": "s3cret"
# →     }
# →   }
# → }
Go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"gopkg.in/yaml.v3"
)

func main() {
	yamlData := []byte(`
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
`)

	var obj map[string]interface{}
	if err := yaml.Unmarshal(yamlData, &obj); err != nil {
		log.Fatal(err)
	}
	jsonBytes, _ := json.MarshalIndent(obj, "", "  ")
	fmt.Println(string(jsonBytes))
	// → { "services": { "web": { "image": "nginx:latest", "ports": ["80:80"] } } }
}
CLI (yq + jq)
# Convert a YAML file to JSON with yq
yq -o=json config.yaml > config.json

# Pipe YAML into yq for one-off conversion
echo "name: demo" | yq -o=json
# → { "name": "demo" }

# Python one-liner (no extra install on most systems)
python3 -c "import yaml, json, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < config.yaml

よくある質問

YAMLはJSONのスーパーセットですか?
はい、YAML 1.2(2009年公開)以降はそうです。すべての有効なJSONドキュメントは有効なYAMLでもあります。YAML仕様は完全なJSON互換性を確保するために意図的に更新されました。ただし逆は成立しません——コメント、アンカー、クォートなしのキーなどのYAML機能にはJSON相当が存在しません。
変換時にYAMLのコメントはどうなりますか?
コメントは破棄されます。JSONにはコメント構文がないため、YAML入力で#から始まる行はすべて変換時に失われます。コメントを保持したい場合は、元のYAMLファイルを正とし、必要なときにそこからJSONを生成してください。
YAMLのアンカーとエイリアスはどのように処理されますか?
アンカー(&名前)とエイリアス(*名前)は解析時に解決されます。エイリアスはアンカーされたデータの完全なコピーに置き換えられます。結果のJSONには参照が含まれず、すべての値がインラインで展開されます。マージキー(<<: *名前)も同様に解決されます。
YAML→JSON変換でデータが失われることはありますか?
データの値については失われません。YAMLのすべてのスカラー型(文字列、数値、真偽値、null)にはJSON相当が存在します。失われるもの:コメント、タグディレクティブ、アンカー名、ブロックスタイルとフロースタイルの区別。YAMLがカスタムタグ(!!python/object、!!timestampなど)を使用している場合、パーサーによってはプレーンな値に解決されるか、解析エラーになる可能性があります。
YAMLの真偽値'yes'がJSONで文字列になるのはなぜですか?
このツールはYAML 1.2の真偽値解決に従うjs-yaml v4を使用しています。認識される真偽値はtrue/false(大文字小文字不問)のみです。yes、no、on、offはプレーンな文字列として扱われ、JSON出力ではクォートされた文字列として表示されます。真偽値を期待した場所で予期しない文字列値が表示された場合、YAMLソースでtrue/falseに変更してください。
このツールで扱えるYAMLファイルの最大サイズは?
ツールはブラウザ上で動作するため、上限はデバイスの利用可能なメモリに依存します。実際には数メガバイトまでのファイルは問題なく変換できます。非常に大きなファイル(50MB以上)には、データをメモリにすべて読み込むのではなくストリーム処理できるyqなどのCLIツールやPyYAMLを使ったPythonスクリプトの方が安定しています。
YAMLの複数行文字列はJSONでどのように変換されますか?
YAMLには2種類の複数行ブロックスカラーがあります。リテラルブロック(|)は改行をJSON文字列内の\n文字として保持します。フォールドブロック(>)は単一の改行をスペースに置き換え、複数行を1つの段落にまとめます。どちらのスタイルもデフォルトで末尾に改行が追加されますが、チョンプインジケーター(|-または>-)で取り除くことができます。