JSONからYAMLコンバーター

JSONをYAML形式に変換

サンプルを試す

JSON入力

YAML出力

ローカルで実行 · シークレットの貼り付けも安全
YAMLがここに表示されます…

JSONからYAMLへの変換とは?

JSONからYAMLへの変換は、JavaScript Object Notation(JSON)のデータをYAML Ain't Markup Language(YAML)に変換する処理です。両フォーマットはオブジェクト、配列、文字列、数値、真偽値、nullという同じデータ構造を表現できますが、構文が異なります。JSONは波括弧・角括弧・カンマを使用し、YAMLはインデントと改行を使用するため、プレーンテキストに近い読みやすい出力を生成します。XMLとは異なり、どちらのフォーマットもスキーマを必要としません。

YAMLは人間が読みやすいデータシリアライゼーション形式として設計されました。Kubernetesマニフェスト、Docker Composeファイル、Ansibleプレイブック、GitHub Actionsワークフロー、その他多くのCI/CDシステムのデフォルト設定言語です。ソースデータがJSONで、ターゲットシステムがYAMLを要求する場合、データの損失なしにすべての値・型・ネスト階層を正確に保持するコンバーターが必要です。

JSONでAPIレスポンスやエクスポートデータを受け取り、YAML設定ファイルに貼り付ける必要がある場合、オンラインでのJSON→YAML変換が役立ちます。変換はすべての標準JSONタイプに対してロスレスです。文字列、数値、真偽値、null、配列、オブジェクトはそれぞれ対応するYAML形式に直接マッピングされます。コロンや特殊文字を含む値は自動的に引用符で囲まれ、有効なYAML出力が保証されます。

なぜJSONをYAMLに変換するのか?

YAMLは設定ファイルの標準形式であり、JSONはAPIが返すフォーマットです。両者を相互変換することで、データを手動で書き直すことなく、各タスクに適したフォーマットを使用できます。

即時変換
JSONを貼り付けると即座にYAML出力を取得できます。サーバー処理の待機、ファイルアップロード、レート制限は一切ありません。
🔒
プライバシー優先の処理
データはブラウザの外に送信されません。変換はデバイス上のJavaScriptで完全に実行されるため、認証情報、トークン、APIキーは非公開のままです。
🔀
あらゆるJSON構造に対応
深くネストされたオブジェクト、大きな配列、混在する型、Unicode文字列、特殊文字もすべて正確に変換されます。ツールはデータ構造全体を保持します。
📋
アカウント・インストール不要
ページを開いてすぐに変換を開始できます。サインアップ、拡張機能、CLIツールのインストールは不要です。ブラウザがあればどのデバイスでも動作します。

JSON to YAML のユースケース

Kubernetes と Docker Compose
APIレスポンスやエクスポートされた設定はJSONで届くことが多くあります。それらをYAMLに変換してKubernetesマニフェスト、Helmチャート、Docker Composeファイルで直接使用できます。
CI/CDパイプライン設定
GitHub Actions、GitLab CI、CircleCI、Azure PipelinesはいずれもYAMLを使用します。JSONからパイプライン設定をプログラムで生成する場合、コミット前に出力を変換してください。
Ansible プレイブック
AnsibleはプレイブックとインベントリファイルにYAMLを必要とします。クラウドAPIからのJSONインベントリエクスポートをAnsibleが要求するYAML形式に変換できます。
APIレスポンスの確認
REST APIはJSONを返します。ネストされたレスポンスをYAMLに変換すると、括弧が多いJSONよりもデータの階層構造を一目で把握しやすくなります。
設定ファイルの移行
JSONベースの設定(tsconfig.json、package.jsonのexportsなど)からYAMLベースのツールへアプリケーションを移行する際、値を手動で入力し直すのではなく一括変換できます。
学習とドキュメント作成
学生やテクニカルライターはJSONとYAMLを並べて表示することで、データ構造がフォーマット間でどのようにマッピングされるかを理解できます。コンバーターは即座に正確なサンプルを提供します。

JSON vs YAML 比較

JSONとYAMLは同じデータを表現できますが、構文と機能は特定のユースケースに影響する点で異なります。

機能JSONYAML
SyntaxCurly braces, square brackets, colons, commasIndentation-based, colons, dashes
ReadabilityModerate — nested brackets become denseHigh — visual hierarchy from indentation
CommentsNot allowed (RFC 8259)Supported with #
Multi-line stringsEscape sequences only (\n)Block scalars with | or >
Data typesstring, number, boolean, null, object, arraySame plus date, timestamp, binary
File sizeSlightly larger (brackets + quotes)Slightly smaller (no brackets)
Trailing commasNot allowedNot applicable (no commas)
SpecRFC 8259 / ECMA-404YAML 1.2 (yaml.org)

変換後のYAMLに関する注意点

YAMLにはJSONに慣れた開発者を驚かせる構文規則があります。以下の4つの問題が変換後の出力で最も多くのバグを引き起こします。

クォートなしの yes/no は真偽値になる
YAML 1.1のパーサーは、裸のyes、no、on、off、true、falseを真偽値として扱います。JSONの文字列値が"yes"や"no"の場合、古いツールではYAML出力からクォートが失われ真偽値として解析される可能性があります。YAML 1.2ではtrue/falseのみに制限されています。
インデントエラーはパースを破壊する
YAMLはインデントで構造を定義します。スペース1つの過不足が意味を変えたりパースエラーを引き起こしたりします。JSONではカンマの位置ミスが明確なエラーになりますが、YAMLのインデントミスはデータ階層をサイレントに変えてしまう可能性があります。
値内のコロンはクォートが必要
コロンの後にスペースが続く場合(": ")はYAMLのキーと値の区切り文字です。JSONの文字列にこのシーケンスが含まれている場合(例:"http://example.com")、YAML出力では値をクォートする必要があります。ほとんどのコンバーターはこれを自動的に処理します。
マルチドキュメントファイル
YAMLは---で区切られた複数のドキュメントを1つのファイルに格納できます。JSONにはこれに相当する機能がありません。JSON設定の配列を変換する際、各要素を個別のYAMLドキュメントにするか配列アイテムとして保持するかを選択できます。ターゲットツールが期待するフォーマットを確認してください。

コード例

プログラムでJSONをYAMLに変換するには、ほとんどの言語でYAMLシリアライゼーションライブラリが必要です。標準ライブラリはJSONの解析を処理しますが、YAML出力には追加パッケージが必要です。

JavaScript (Node.js)
import YAML from 'js-yaml'

const json = '{"host":"localhost","port":3000,"debug":true}'
const obj = JSON.parse(json)
const yamlStr = YAML.dump(obj, { indent: 2 })
console.log(yamlStr)
// → host: localhost
// → port: 3000
// → debug: true
Python
import json, yaml

json_str = '{"host": "localhost", "port": 3000, "debug": true}'
data = json.loads(json_str)
yaml_str = yaml.dump(data, default_flow_style=False, sort_keys=False)
print(yaml_str)
# → host: localhost
# → port: 3000
# → debug: true
Go
package main

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

func main() {
    jsonStr := `{"host":"localhost","port":3000,"debug":true}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    yamlBytes, _ := yaml.Marshal(data)
    fmt.Println(string(yamlBytes))
    // → debug: true
    // → host: localhost
    // → port: 3000
}
CLI (yq / jq + Python)
# Using yq (https://github.com/mikefarah/yq)
echo '{"host":"localhost","port":3000}' | yq -P
# → host: localhost
# → port: 3000

# Using Python one-liner
echo '{"host":"localhost","port":3000}' | python3 -c "import sys,json,yaml; print(yaml.dump(json.load(sys.stdin), default_flow_style=False))"

よくある質問

JSONからYAMLへの変換はロスレスですか?
はい、すべての標準JSONタイプに対してロスレスです。文字列、数値、真偽値、null、配列、オブジェクトはそれぞれ直接対応するYAML形式を持ちます。変換されたYAMLを再度解析すると同一のデータが得られます。唯一の見た目の違いはフォーマットで、YAMLは波括弧の代わりにインデントを使用します。
YAMLはJSONで表現できるものをすべて表現できますか?
はい。YAMLはJSON(YAML 1.2以降)のスーパーセットです。すべての有効なJSONドキュメントは有効なYAMLでもあります。YAMLはJSONにない機能を追加しています:コメント、アンカー/エイリアス、複数行文字列、日付などの追加スカラー型です。
KubernetesとDockerはなぜJSONではなくYAMLを使用するのですか?
YAMLはコメントをサポートしており、インフラ設定のドキュメント化に不可欠です。また、インデントが括弧の煩雑さを置き換えるため、深くネストされた構造の可読性が高くなります。Kubernetesは実際にはJSONとYAMLの両方を受け付けますが、コミュニティと公式ドキュメントはすべてYAMLを使用しています。
大きなJSONファイルはどう扱えばよいですか?
このコンバーターはブラウザ上で動作するため、数メガバイトまでのファイルは問題なく処理できます。非常に大きなファイル(50MB以上)の場合は、yqなどのCLIツールやPyYAMLライブラリを使用したPythonスクリプトを使用してください。これらはデータをストリームとして処理するためメモリ消費が少なくなります。
コンバーターはキーの順序を保持しますか?
はい。コンバーターはJSONの入力に現れる順序と同じ順序でYAMLキーを出力します。JSONオブジェクトは仕様上は順序なしですが、実際にはパーサーが挿入順序を保持しており、このツールもYAML出力でその順序を維持します。
出力はどのYAMLバージョンに準拠していますか?
出力はYAML 1.2の仕様に準拠しています。これはtrueとfalseのみが真偽値リテラルとして扱われることを意味します(yes/no/on/offは対象外)。誤解を招く可能性がある文字列は、解析の曖昧さを防ぐために自動的にクォートされます。
APIキーやトークンをこのツールに貼り付けても安全ですか?
はい。変換はブラウザ上でJavaScriptを使用して完全に実行されます。いかなるサーバーにもデータは送信されません。ブラウザのネットワークインスペクターを開き、変換中にリクエストが発生しないことを確認することで検証できます。