Skip to content

JSON to YAML コンバーター

JSONを貼り付けるだけで即座にYAMLを取得。ブラウザ内でリアルタイム変換。K8s・Compose対応、2/4スペースインデント、Norway問題対応自動クォート。100%プライベート、データは送信されません。

トラッキングなし ブラウザで動作 無料
オプション · 2スペース · 自動 · ブロック
インデント
スタイル
0 文字
YAML 出力
0
RFC 8259準拠、YAML 1.2仕様出力、Norway問題処理の正確性についてレビュー済み — Go Tools Engineering Team · May 4, 2026

YAMLとは何ですか?なぜJSONから変換するのですか?

YAML(YAML Ain't Markup Language)は人間が読めるデータシリアライゼーション形式で、設定ファイル・Infrastructure as Code・人間が書いてマシンが読むあらゆる場面向けに設計されています。インデントベースの構文は波括弧や角括弧を必要とせず、複雑なネスト構造をJSONよりはるかに読みやすくします。Kubernetes・Helm・Ansible・Docker Compose・GitHub Actions・CircleCI、そして事実上すべてのクラウドネイティブツールがYAMLを主要な設定フォーマットとして使用しています。したがってJSONをYAMLに変換することはDevOpsやバックエンド開発で最もよくある作業の一つです — APIからJSON形式でリソース定義を受け取り、バージョン管理にコミットするためのYAMLマニフェストが必要になります。

典型的なオンラインコンバーターと比較して、このツールには4つの重要な差別化ポイントがあります。

**1. Norway問題 — 自動安全クォート。** JSON to YAML変換で最大の落とし穴はYAML の Norway 問題です。YAML 1.1(何百万もの本番パーサーが今も使用しており、旧バージョンのKubernetes・PyYAML・Ansible・RubyのPsychを含む)では、裸の文字列yes・no・on・off・y・nがブール値true/falseとして解析されます。これはノルウェーのISOカントリーコード("NO" → false)で有名になり、Kubernetes設定で実際の本番障害を引き起こしました。YAML 1.2ではこの問題が修正されましたが、あなたのパーサーが1.2を使っているとは限りません。このツールのデフォルト「自動」クォートモードはYAML 1.1スキーマを持つeemeli/yamlライブラリを使用し、すべてのNorway問題文字列を自動的にクォートで囲み、YAML 1.1と1.2の両パーサーで安全な往復を保証します。詳細は私たちの解説記事 YAML の Norway 問題とJSON-YAML変換の差異 をご覧ください。

**2. キー順序の保持。** キーをアルファベット順にソートする一部のコンバーターとは異なり、このツールはJSONの元のキー挿入順序を保持します。これはすべての最新のJavaScriptエンジンのJSON.parse()の動作と一致しています。KubernetesマニフェストではapiVersionとkindが慣例として最初に来ることが期待されており、OpenAPI仕様ではinfoがpathsの前に来ます。フィールドの順序が可読性やdiffにとって意味があるあらゆる設定でこの順序保持が重要です。

**3. 大きな数値の精度に関する注意。** 2^53 - 1(9007199254740991)を超えるJSON数値はJavaScriptのIEEE 754倍精度浮動小数点数で正確に表現できません。JSON.parse()がKubernetesのresourceVersionフィールドのような大きな整数(サーバー側では64ビット整数)を読み取ると、無言で切り捨てます。これはこのツールを含むすべてのブラウザベースのJSONツールに影響する根本的なブラウザJavaScriptの制限です。安全な回避策は変換前に大きな整数をJSONで文字列として保存することです。このツールは下の「数値精度の損失」のよくあるエラーでこの動作を正直に説明しています。

**4. 100%ブラウザベースのプライバシー。** あなたのJSONデータ(APIキー・データベース認証情報・内部サービス設定・本番シークレットを含むことが多い)はブラウザを離れることはありません。データはどのサーバーにも送信されません。ブラウザの「ネットワーク」タブで確認できます。これはオンラインツールでセンシティブな設定データを扱う唯一の安全な方法です。逆方向のコンパニオンツールは YAML to JSONコンバーター をご覧ください。変換前にJSONを検証して整形したい場合は JSON整形ツール を使用してください。

YAMLの人間が読みやすい性質にはトレードオフがあります。JSONよりも多くのパースエッジケースがあります。Norway問題の他にも、YAMLには8進数の特性(YAML 1.1では0777が511として解析される)・複数行文字列構文(|はリテラル、>はフォールド)・アンカーとエイリアスの参照(&anchorと*alias)・複数ドキュメントのサポート(---セパレーター)があります。JSONにはこれらの複雑さはありません — 6つのデータ型のみを持つ厳密で最小限のフォーマットです。マシン間のデータ交換にはほぼ常にJSONが優れた選択です。人間が編集する設定ファイルで可読性とコメントが重要な場合はYAMLが優勝します。このコンバーターは両方の長所を提供します:プログラム的にはJSONを使い、インフラの設定にはYAMLに変換できます。

// Convert JSON to YAML in Node.js using the eemeli/yaml library
import { Document } from 'yaml';

const data = JSON.parse('{"apiVersion":"apps/v1","kind":"Deployment"}');

// version: '1.1' ensures Norway-problem strings (yes/no/on/off/y/n)
// are automatically quoted in the output for YAML 1.1 parser safety
const doc = new Document(data, { version: '1.1' });

const yamlString = doc.toString({
  indent: 2,
  lineWidth: 0,         // disable line wrapping
  defaultStringType: 'PLAIN',   // Auto mode: only quote when needed
});

console.log(yamlString);
// apiVersion: apps/v1
// kind: Deployment

主な機能

リアルタイム変換

JSONを入力・貼り付けるとYAML出力が即座に更新されます — 「変換」ボタンは不要です。大きな入力(>200KB)はブラウザのレスポンスを維持するために自動的に手動モードに切り替わります。

2または4スペースインデント

2スペース(Kubernetes・Docker Compose・GitHub Actionsの標準)と4スペース(Ansible慣習)インデントを切り替えられます。YAMLではタブは禁止されており、このツールは常にスペースを使用します。

自動安全クォート(Norway対応)

デフォルトの「自動」モードはYAML 1.1スキーマを使用して、YAML 1.1パーサーがブール値として誤読する "no"・"yes"・"on"・"off"・"y"・"n" などの文字列に自動的にクォートを付加し、本番環境の設定ミスを防ぎます。

ブロックスタイルとフロースタイル

ブロックスタイルはマニフェストや設定ファイルに最適なインデントされた人間が読みやすいYAMLを生成します。フロースタイルはJSONに似たコンパクトなインラインYAMLを生成し、ドキュメントのスニペットや最小出力を好むツールに便利です。

100%ブラウザベースのプライバシー

すべての変換はJavaScriptを使用してブラウザ内でローカルに実行されます。APIキー・認証情報・本番設定を含むJSONデータはどのサーバーにも送信されず、記録されず、保存されません。

K8s・Compose・Terraformファイルに対応

実際のDevOpsユースケースに最適化:Kubernetesマニフェスト・Docker Composeスタック・Helm chartのvalues・GitHub Actionsワークフロー・OpenAPI仕様・Terraform JSONプランの出力 — それぞれのサンプル付きです。

サンプル

Kubernetes Deployment

{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"name":"my-app","namespace":"production","labels":{"app":"my-app","version":"1.0.0"}},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"my-app"}},"template":{"metadata":{"labels":{"app":"my-app"}},"spec":{"containers":[{"name":"my-app","image":"my-app:1.0.0","ports":[{"containerPort":8080}],"resources":{"requests":{"memory":"64Mi","cpu":"250m"},"limits":{"memory":"128Mi","cpu":"500m"}}}]}}}}

JSON APIレスポンス形式のKubernetes DeploymentマニフェストをYAMLに変換し、kubectl apply -f で適用できる形式にします

Docker Compose

{"version":"3.9","services":{"web":{"image":"nginx:1.25-alpine","ports":["80:80","443:443"],"environment":{"NGINX_HOST":"example.com","NGINX_PORT":"80"},"depends_on":["db"],"restart":"unless-stopped"},"db":{"image":"postgres:16-alpine","environment":{"POSTGRES_DB":"mydb","POSTGRES_USER":"admin","POSTGRES_PASSWORD":"secret"},"volumes":["pgdata:/var/lib/postgresql/data"]}},"volumes":{"pgdata":{}}}

Docker ComposeサービスのJSONをdocker compose upで必要なYAML形式に変換します

GitHub Actionsワークフロー

{"name":"CI","on":{"push":{"branches":["main"]},"pull_request":{"branches":["main"]}},"jobs":{"build":{"runs-on":"ubuntu-latest","steps":[{"uses":"actions/checkout@v4"},{"name":"Set up Node.js","uses":"actions/setup-node@v4","with":{"node-version":"20","cache":"pnpm"}},{"name":"Install dependencies","run":"pnpm install --frozen-lockfile"},{"name":"Run tests","run":"pnpm test"}]}}}

GitHub Actions CIワークフロー定義をJSONからYAMLに変換し、.github/workflows/ にコミットできる形式にします

OpenAPI仕様

{"openapi":"3.0.3","info":{"title":"User API","version":"1.0.0","description":"Manage application users"},"paths":{"/users":{"get":{"summary":"List users","operationId":"listUsers","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":20}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}}}},"/users/{id}":{"get":{"summary":"Get user","operationId":"getUser","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success"}}}}},"components":{"schemas":{"User":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"}}}}}}

OpenAPI 3.0仕様をJSONからYAMLに変換します — Swagger UI、Redoc、およびほとんどのAPIツールで推奨される形式です

package.json

{"name":"my-app","version":"1.0.0","description":"A sample Node.js application","private":true,"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"vitest","lint":"eslint . --ext .ts,.tsx"},"dependencies":{"react":"^18.3.0","react-dom":"^18.3.0"},"devDependencies":{"typescript":"^5.4.0","vite":"^5.2.0","vitest":"^1.5.0","eslint":"^8.57.0","@types/react":"^18.3.0"},"engines":{"node":">=20.0.0","pnpm":">=9.0.0"}}

典型的なNode.jsのpackage.jsonをYAMLに変換します — YAMLを好むプロジェクト設定ツールへの移行に便利です

Terraform JSONプラン

{"format_version":"1.0","terraform_version":"1.7.4","variables":{"region":{"value":"us-east-1"}},"planned_values":{"root_module":{"resources":[{"address":"aws_s3_bucket.main","mode":"managed","type":"aws_s3_bucket","name":"main","values":{"bucket":"my-app-assets","force_destroy":false,"tags":{"Environment":"production","ManagedBy":"terraform"}}}]}},"resource_changes":[{"address":"aws_s3_bucket.main","mode":"managed","type":"aws_s3_bucket","name":"main","change":{"actions":["create"],"before":null,"after":{"bucket":"my-app-assets","force_destroy":false}}}]}

Terraform JSONプランの出力をYAMLに変換し、人間によるレビュー、GitOps監査証跡、CI/CDパイプラインに活用できます — 他の多くのコンバーターにはないこのツールの差別化機能です

使い方

  1. 1

    JSONを貼り付ける

    上の入力欄にJSONデータを入力または貼り付けてください。「サンプルを読み込む」をクリックして、Kubernetes Deployment・Docker Composeファイル・Terraformプランなどのサンプルを試すこともできます。

  2. 2

    YAML出力をリアルタイムで確認

    YAMLは即座に出力パネルに表示されます。オプション(インデント2/4、クォート自動/ダブル/シングル、スタイルブロック/フロー)を調整して、対象ツールの要件に合わせてください。

  3. 3

    コピーまたはダウンロード

    「コピー」でYAMLをクリップボードに取得するか、「ダウンロード」でkubectl apply・docker compose up・その他のツールにすぐ使える.yamlファイルとして保存してください。

よくある変換ミス

末尾カンマ

JSONではオブジェクトや配列の最後の要素の後にカンマを置くことができません。JavaScriptコードからコピーするときに非常によく発生します(JavaScriptでは末尾カンマが許可されているため)。変換前に末尾のカンマを削除してください。

✗ 誤り
{"name": "Alice", "role": "admin",}
✓ 正しい
{"name": "Alice", "role": "admin"}

シングルクォート

JSONではすべての文字列値とオブジェクトキーにダブルクォートが必要です。シングルクォートはJavaScriptやPythonでは有効ですが、JSONでは構文エラーです。

✗ 誤り
{'name': 'Alice', 'active': true}
✓ 正しい
{"name": "Alice", "active": true}

クォートなしのキー

JSONオブジェクトのすべてのキーはダブルクォートで囲む必要があります。クォートなしのキーはJavaScriptオブジェクトリテラルでは有効ですが、厳密なJSONでは解析エラーになります。

✗ 誤り
{name: "Alice", role: "admin"}
✓ 正しい
{"name": "Alice", "role": "admin"}

コメントは使用不可

標準JSONはいかなるコメントもサポートしません — //・/* */・# のいずれも使用できません。設定にコメントが必要な場合はYAML(#コメントをサポート)またはJSONC(コメント付きJSON、VS Codeで使用)を使用してください。JSONデータとして使用する前にすべてのコメントを削除してください。

✗ 誤り
{"port": 8080 // HTTP port}
✓ 正しい
{"port": 8080}

YAML の Norway 問題(自動モードでは自動処理)

YAML 1.1パーサー(Kubernetes・Ansible・PyYAML・Ruby Psychが使用)では、裸の文字列yes・no・on・off・y・nが文字列ではなくブール値true/falseとして解析されます。このツールの「自動」モードはYAML出力でこれらの値を自動的にクォートし、YAML 1.1または1.2のどのパーサーでも安全な往復を保証します。「ダブル」または「シングル」クォートモードを選択すると、すべての文字列が明示的にクォートされるため問題を回避できます — ただし「自動」モードの出力の方が自然に見えます。

✗ 誤り
# JSON input: {"country": "no", "enabled": "yes"}
# YAML without quoting (dangerous):
country: no
enabled: yes
# YAML 1.1 parser reads: country=false, enabled=true
✓ 正しい
# YAML with Auto quoting (safe):
country: 'no'
enabled: 'yes'
# YAML 1.1 parser reads: country="no", enabled="yes"

大きな整数の精度損失

JavaScriptは2^53 - 1(9007199254740991)までの整数のみを正確に表現できます。これを超えるJSON整数(サーバー側でint64のKubernetesのresourceVersionフィールドなど)はJSON.parse()で解析されるときに無言で丸められ、切り捨てられた数値がYAML出力に表示されます。これはすべてのブラウザベースのJSONツールに影響する根本的な制限です。安全な回避策は変換前にJSONで大きな整数を文字列として保存することです。

✗ 誤り
// JSON input (resourceVersion is int64 on K8s server)
{"resourceVersion": 9007199254740993}
// JavaScript reads it as: 9007199254740992 (precision lost)
// YAML output will contain the wrong number
✓ 正しい
// Store large integers as strings to preserve precision
{"resourceVersion": "9007199254740993"}
// YAML output: resourceVersion: '9007199254740993' (exact)

よくある使用場面

Kubernetesマニフェスト
kubectl get -o json やKubernetes APIからのJSONレスポンスをYAMLマニフェストに変換し、GitOpsワークフロー・Kustomizeオーバーレイ・kubectl apply -f デプロイに使用します。
Docker Composeファイル
docker inspect のJSON出力やプログラムで生成されたサービス設定を、docker compose upやDocker Stackデプロイと互換性のあるdocker-compose.yamlファイルに変換します。
Helm Chartのvalues
JSON設定のエクスポートをHelmチャートデプロイ用のYAML valuesファイルに変換し、クリーンなYAML構文でバージョン管理されたインフラ設定を実現します。
GitHub Actionsワークフロー
GitHub Actionsワークフロー定義をプログラム的にJSONで構築し、GitHub Actions runnerが必要とする.github/workflows/*.yaml形式に変換します。
OpenAPI仕様
多くのフレームワーク(FastAPI・SpringDoc)が返すJSON形式のOpenAPI/Swagger仕様を、Swagger UI・Redoc・APIゲートウェイツールが好むYAML形式に変換します。
設定の移行
JSONで保存されたアプリケーション設定(appsettings.json・config.json)をYAML形式に移行し、YAMLを必要とするまたは好むツールに対応し、コメントによるドキュメント追加も可能にします。

技術的詳細

RFC 8259準拠のJSON解析
JSON入力はブラウザのネイティブJSON.parse()を使用して解析され、RFC 8259に完全準拠しています。位置情報(ベストエフォートの行番号と列番号)を含む正確な構文エラーメッセージを提供し、文字列・数値・ブール値・null・配列・オブジェクトのすべてのJSONデータ型を処理します。
YAML 1.1スキーマのeemeli/yaml Document APIによるYAML 1.2出力
YAMLはeemeli/yamlライブラリ(v2.8+、CVE安全)のDocument APIを使用してversion: '1.1'で生成されます。この組み合わせによりYAML 1.2準拠の出力が生成されつつ、YAML 1.1クォートルールが適用されます — つまりNorway問題の文字列(yes/no/on/off/y/n)は出力で自動的にクォートされ、YAML 1.1と1.2の両パーサーで安全です。行の折り返しは無効化(lineWidth: 0)されており、長い文字列もそのまま保持されます。
100%ブラウザベース — アップロードなし、サーバーなし
すべての処理はブラウザのJavaScriptエンジン内で完結します。データはいかなる時点でもネットワーク経由で送信されません。200KBを超える入力はリアルタイムモードから手動モードへ自動的に切り替わります(明示的な「変換」クリックが必要)。ブラウザのレスポンスを維持し、重いシリアライゼーション中にメインスレッドがブロックされるのを防ぐためです。

ベストプラクティス

DevOps設定には必ず「自動」クォートモードを使用する
KubernetesやHelm・Ansible・Docker Compose・GitHub Actionsで使用するためにJSONを変換する場合は、常にデフォルトの「自動(Norway対応)」クォートモードを使用してください。これらのツールのYAML 1.1パーサーは裸の文字列yes・no・on・off・y・nを無言でブール値として誤読します — 「自動」モードはこれを透過的に防ぎます。
クラウドネイティブツールには2スペースインデントを使用する
Kubernetes・Docker Compose・GitHub Actions・Helmはすべて慣例として2スペースインデントを使用しています。これらのファイルで4スペースインデントを使用することは有効なYAMLですが、コミュニティの例・自動生成された設定・チームの既存マニフェストとの不整合が生じます。
変換前に大きな整数を文字列として保存する
KubernetesのresourceVersion・uid、およびAPIサーバーからのその他のint64フィールドはJavaScriptの安全整数範囲(2^53 - 1)を超える可能性があります。正確な数値精度が必要な場合は、変換前にこれらの値をJSON文字列として保存してください。サーバー側で生成されたフィールドを含むkubectl get -o json の出力では特に重要です。
まずJSONを検証する
JSONソースが手書きの場合や、不正な出力を生成することがあるシステム(末尾カンマ・クォートなしキー・コメント)から来ている場合は、変換前にJSONフォーマッターで検証してください。JSON整形ツール を使用して構文エラーを見つけて修正し、クリーンなJSONをYAMLに変換してください。
バージョン管理に入れるファイルにはブロックスタイルを優先する
ブロックスタイルYAMLは各フィールドが個別の行に表示されるため、Gitで見やすく人間が読みやすいdiffを生成します。フロースタイル(コンパクトなインライン形式)はdiffの読み取りとレビューを難しくします。フロースタイルはドキュメントへの短いYAMLスニペットの埋め込みやコンパクトな出力を必要とするツールのために取っておいてください。

よくある質問

オンラインでJSONをYAMLに変換するには?
上の入力欄にJSONを貼り付けてください。ツールはブラウザ内で即座にYAMLに変換します — ボタンのクリックは不要です。「オプション」パネルでインデント(2または4スペース)、クォートスタイル(自動・ダブル・シングル)、出力スタイル(ブロック・フロー)を調整できます。出力エリアにYAMLが表示されたら、「コピー」でクリップボードにコピーするか、「ダウンロード」で.yamlファイルとして保存できます。すべての処理はローカルで実行されます — データがデバイスの外に出ることはありません。
YAMLのNorway問題とは何ですか?このツールはどう対処していますか?
YAML の Norway 問題とは、YAML 1.1仕様における特性で、"no"・"yes"・"on"・"off"・"y"・"n" などの裸の文字列が文字列ではなくブール値(false/true)として解析されるというものです。これによりノルウェーのISOカントリーコード "NO" がAnsibleプレイブックやKubernetes設定でブール値falseとして誤読されるという有名な実際の問題が発生しました。YAML 1.2ではこの問題は修正されましたが、膨大な本番環境のパーサー(旧バージョンのKubernetes、PyYAML、Ansible、RubyのPsych)はYAML 1.1を使い続けています。このツールのデフォルト「自動」クォートモードは、Norway問題に該当する文字列すべてを自動的にクォートで囲み、YAML 1.1と1.2の両パーサーで安全に往復できるようにします。入力にNorway問題の文字列が検出されると、警告バナーに自動クォートされた値が一覧表示されます。
Norway問題はKubernetesとDevOpsにどう影響しますか?
KubernetesのYAMLマニフェスト、Helm chartのvalues、Ansibleプレイブック、GitHub Actionsワークフローはすべて歴史的にYAML 1.1を使用するツールで解析されます。設定キーの値が "no"(例えばカントリーコード、文字列形式の有効フラグ、カスタムブール的なフィールド)の場合、YAML 1.1パーサーはそれをブール値falseに無言で変換します。これによりサービスの設定ミスが発生し、YAMLはテキストとして見ると正しいにもかかわらずパース後に異なる動作をするため、デバッグが極めて困難になります。KubernetesやDevOpsツールチェーンで使うためにJSONを変換する際は、安全な往復変換を保証するために必ず「自動」クォートモードを使用してください。
YAMLは2スペースと4スペースどちらのインデントを使うべきですか?
KubernetesマニフェストやHelm values、Docker Composeファイル、GitHub Actionsワークフローには2スペースインデントを使ってください — これらのツールは2スペースYAMLを前提に設計されており、コミュニティの慣習です。Ansibleプレイブック(4スペース慣習に従う)やチームや組織のスタイルガイドが義務付ける場合は4スペースを使ってください。YAMLはタブを完全に禁止しています — すべてのインデントはスペースでなければなりません。このツールはデフォルトで2スペースを使用し、クラウドネイティブの大多数のユースケースに適しています。
このツールを使ってKubernetesマニフェストを作成するには?
JSON形式のKubernetesリソース定義(kubectl get deployment my-app -o json、APIレスポンス、またはTerraformリソースブロック)がある場合、入力欄に貼り付けてください。2スペースインデント(デフォルト)と自動クォート(デフォルト、Norway問題を処理)を選択してください。YAML出力はすぐにkubectl apply -f に使用できます。「ダウンロード」をクリックして.yaml拡張子でファイルを保存し、kubectl apply -f - に直接パイプすることもできます。上のK8s Deploymentの例は完全なdeploymentマニフェストを示しています。ロードして変更してみてください。
Docker Compose JSONをYAMLに変換するには?
Docker Compose JSONを入力欄に貼り付けてください。2スペースインデント(Docker Composeの慣習)とブロックスタイルを使用してください。出力されたYAMLはdocker compose up、docker compose config、Docker Stackと互換性があります。よくある使用例は、実行中のスタックの設定をdocker inspectでエクスポートし、compose.yamlファイルに変換することです。上のDocker Composeの例には、ポート・環境変数・ボリューム・depends_onを含む完全なサービス定義が含まれています。
2^53を超えるJSON数値はYAMLへの変換時に精度を失いますか?
はい。これはJavaScriptの根本的な制限です。JavaScriptのNumber型はIEEE 754倍精度浮動小数点数を使用しており、2^53 - 1(9007199254740991)までの整数のみを正確に表現できます。それを超える整数(KubernetesのresourceVersionフィールドはサーバー側でint64)はJSON.parse()で解析されるときに無言で丸められます。例えば、9007199254740993はJavaScript上で9007199254740992になり、切り捨てられた数値がYAML出力に表示されます。これはこのツールだけでなく、すべてのブラウザベースのJSONツールに影響する問題です。安全な回避策はJSONで大きな整数を文字列として保存することです("resourceVersion": "9007199254740993")— 精度が失われることなく文字列として表示されます。
コンバーターはJSONのキー順序を保持しますか?
はい。このツールが使用するeemeli/yamlライブラリは挿入順序を保持します。これはすべての最新のJavaScriptエンジン(V8、SpiderMonkey、JavaScriptCore)のJSON.parse()の動作と一致しています。YAML出力のキーはJSON入力に現れた順序と同じです。これはKubernetesマニフェストやOpenAPI仕様において重要です。フィールドの順序は可読性やdiffにとって意味があることが多いためです。
JSONとYAMLはどちらを使うべきですか?
JSONを使う場合:APIやWebサービスを構築するとき(JSONは汎用のデータ交換フォーマット)、マシンによる解析速度が重要なとき、厳密な型安全性が必要なとき、またはコンシューマーがJavaScript/TypeScriptアプリケーションのとき。YAMLを使う場合:人間が編集する設定ファイルを書くとき(Kubernetesマニフェスト、CI/CDパイプライン、Ansibleプレイブック、Helm values)、設定にコメントが欲しいとき、または厳密さよりも可読性が重要なとき。実用的なルール:マシンが先に書くか読む場合はJSON、人間が書いてマシンが読む場合はYAMLを使いましょう。
コマンドラインでJSONをYAMLに変換するには?
最も人気な方法はyqとjqを組み合わせることです。yq(Mike Farah版、Pythonではない)をインストールします:macOSはbrew install yq、Linuxはwget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq。その後、cat input.json | yq -P でYAMLとしてプリティプリントします。または:yq -o yaml input.json や cat input.json | python3 -c "import sys, json, yaml; yaml.dump(json.load(sys.stdin), sys.stdout, default_flow_style=False)" も使えます。Kubernetes向けには:kubectl get deployment my-app -o yaml でクラスターAPIから直接変換できます。
Python、Node.js、GoでJSONをYAMLに変換するには?
Pythonの場合:import json, yaml; yaml.dump(json.load(open('input.json')), open('output.yaml', 'w'), default_flow_style=False)(PyYAMLを使用)、またはruamel.yamlを使って往復精度を確保します。Node.jsの場合:import { Document } from 'yaml'; const doc = new Document(JSON.parse(input), { version: '1.1' }); const result = doc.toString({ indent: 2, lineWidth: 0 }) — これはこのツールと同じライブラリ・アプローチです。Goの場合:import gopkg.in/yaml.v3; json.Unmarshal(jsonBytes, &data); yaml.Marshal(data) — Go YAML v3はデフォルトでYAML 1.1を使用するため、Norway問題の文字列は自動的にクォートされます。
このツールを使うとJSONデータがサーバーに送信されますか?
いいえ。すべての変換はJavaScriptを使用してブラウザ内で完結します。JSONデータがネットワーク経由で送信されることも、サーバーに保存されることも、記録・分析されることもありません。APIキー・データベース認証情報・内部設定ファイル・本番Kubernetesマニフェストなどあらゆるセンシティブなデータでも安全に使用できます。入力データに関してCookieを使用しておらず、貼り付け内容を取得するサードパーティアナリティクスもありません。ブラウザの「ネットワーク」タブを開けば確認できます — JSONを貼り付けてもリクエストは一切発生しません。
JSON入力にファイルサイズの制限はありますか?
ハードな上限はありませんが、200KBを超える大きな入力はリアルタイム変換から手動モードに自動で切り替わります。手動モードでは「変換」ボタンが表示され、クリックしたときのみ変換が実行されます — これにより各キー入力のたびにブラウザのメインスレッドが200〜500msブロックされるのを防ぎます。非常に大きなJSONファイル(数MBクラス)には、yqやjqなどのコマンドラインツールの使用をお勧めします。完全なKubernetesネームスペースのエクスポート・大きなOpenAPI仕様・マルチサービスのDocker Composeファイルなど、典型的な実際のペイロードを効率的に処理できます。

Base64エンコーダー&デコーダー

エンコーディングとフォーマット

Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。

JSONフォーマッター&バリデーター

エンコーディングとフォーマット

無料オンラインJSON整形ツール。ブラウザ上でJSONのフォーマット、構文検証、圧縮を即座に実行。エラー検出、ワンクリックコピー対応。データは端末外に送信されず、100%プライバシー保護。

URLエンコーダー&デコーダー — URL構造パーサー内蔵

エンコーディングとフォーマット

URLを貼り付けるだけで即座にエンコード・デコード。内蔵URLパーサーがプロトコル・ホスト・パス・クエリパラメータを編集可能なフィールドに分解。encodeURIとencodeURIComponentの2モード対応。完全ブラウザ動作でデータ送信なし。

YAML to JSON コンバーター

エンコーディングとフォーマット

YAMLを貼り付けるだけで即座にJSONを取得。ブラウザ内でリアルタイム変換。K8sマニフェスト・OpenAPI仕様・Helm valuesに対応。100%プライベート、データは送信されません。

進数変換ツール — 2進数・16進数・10進数・8進数

単位変換

無料オンライン進数変換ツール。2進数、8進数、10進数、16進数および任意の基数(2-36)間で数値を瞬時に変換。BigInt対応で桁数制限なし。登録不要・サーバー送信なし、すべての処理がブラウザ内で完結。コピーボタンやコードリテラル出力で開発作業を効率化。

JPEG・PNG・WebP をオンラインで圧縮 — 無料・一括対応

単位変換

無料オンライン画像圧縮ツール。JPEG、PNG、WebP 画像をブラウザ上で最大 80% 縮小。サーバーへのアップロード不要で完全プライベート。最大 20 枚の一括圧縮、品質調整、圧縮前後の比較機能を搭載。登録不要ですぐに使えます。