JSONをYAMLにオンライン変換
波かっこや角かっこで書かれたデータを貼り付けると、同じ内容を字下げされたYAMLにします。ポート8080と8443を持つサービスは読みやすい一覧になり、true、false、空の値も意味を保ちます。壊れた入力は途中まで変換せずに受け付けません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
最初に文書全体を解析するため、不正な入力から信頼できない一部分だけを出力することはありません。オブジェクトはマッピング、配列はシーケンスになり、各値の型は維持されます。
データの意味を変えずに構造を変換します
オブジェクトはマッピング、配列はシーケンスとなり、文字列、数値、真偽値、nullの型は保たれます。入れ子構造には一貫したインデントを付けます。日付のような文字列、数字に見える識別子、特別な単語が別の型として解釈されないよう、文字列とキーは引用符で囲みます。
空のオブジェクトと配列も明示的に残します。ネットワーク、乱数、時計、モデルを使わないため、同じ入力からは常に同じ出力が得られ、バージョン管理や再現可能なビルド、テスト、コードレビューに適しています。
入力の準備と結果の見方
ルートにはオブジェクト、配列、文字列、数値、真偽値、nullを指定できます。コメント、末尾のカンマ、単一引用符、引用符のないキー、undefined、NaN、Infinityは使用できません。これらが含まれると解析は失敗し、解析器の説明を伴う入力エラーが返ります。
不完全なYAMLを返すことはありません。出力は2個の空白によるインデントとブロック形式のコレクションを使用します。キーと文字列にはYAMLでも有効な二重引用符を使うため、型、Unicode文字、改行、バックスラッシュ、エスケープ済み引用符が安全に保たれます。
対話的な変換と自動処理の両方に利用できます
ビルドでYAML成果物を作成したり、文書処理でテスト済みデータから例を生成したり、移行処理で配列、空のコレクション、スカラー型を維持したりできます。この機能は構文を変換しますが、Kubernetes、Docker Composeなどの固有スキーマは検証しません。変換後に対象のスキーマで結果をご検証ください。
よくある質問
文字列、数値、真偽値、nullは維持されますか?
はい。 文字列は型を守るため引用し、ほかのスカラー値は対応するYAML表現を維持します。
特定のYAMLスキーマも検証しますか?
いいえ。 データと同等の有効なYAMLを生成しますが、対象アプリケーションのスキーマは別途ご検証ください。
キーや文字の値が引用符で囲まれるのはなぜですか?
true、null、日付、数字だけの識別子などの値を文字のまま保ち、YAMLを読み込むときに別の意味に解釈されないようにするためです。引用符がデータの意味をそのまま守ります。
入力に書き方の誤りがあるとどうなりますか?
何も変換しません。YAMLを書き出す前に文書全体を確認するため、カンマやかっこが欠けた入力は、それらしく見えても信頼できない一部だけの結果を出さずに受け付けません。
空のまとまりや空の一覧は残りますか?
はい、残ります。値が空のまとまりや空の一覧もはっきりと書き出されるので、変換前の構造が変換後にもそのまま見え、何かが知らないうちに消えることはありません。
数値やtrue、false、空の値の種類は保たれますか?
はい、保たれます。文字は文字、数値は数値、trueとfalseははい・いいえの値、空の値は空のままです。例では、ポート8080と8443は数値のまま残ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/web/json-to-yaml \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"{\"service\":{\"name\":\"api\",\"enabled\":true,\"ports\":[8080,8443]},\"replicas\":3}"}'const res = await fetch("https://api.kit.forhosting.com/web/json-to-yaml", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "{\"service\":{\"name\":\"api\",\"enabled\":true,\"ports\":[8080,8443]},\"replicas\":3}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/json-to-yaml",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "{\"service\":{\"name\":\"api\",\"enabled\":true,\"ports\":[8080,8443]},\"replicas\":3}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/json-to-yaml", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"{\\"service\\":{\\"name\\":\\"api\\",\\"enabled\\":true,\\"ports\\":[8080,8443]},\\"replicas\\":3}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"{\"service\":{\"name\":\"api\",\"enabled\":true,\"ports\":[8080,8443]},\"replicas\":3}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/json-to-yaml", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "{\"service\":{\"name\":\"api\",\"enabled\":true,\"ports\":[8080,8443]},\"replicas\":3}"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.json_to_yaml",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
timeout_sec | 30 |
max_crawl_pages | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
JSON文字列を、波括弧やカンマ、引用符、配列構文を手作業で直さずに同等のYAMLへ変換できます。単発の作業にはブラウザーを、継続的な処理にはAPIをご利用いただけます。
データの意味を変えずに構造を変換します
JSONとYAMLは同じ基本的なデータモデルを表現しますが、適した用途が異なります。APIはJSONを返すことが多く、設定ファイルはYAMLのほうが人にとって確認しやすい場合があります。この変換ツールは、YAMLを書き出す前にJSON全体を解析します。
有効なJSONを用意して出力仕様を確認します
完全なJSON値を1件、テキストとして送信してください。JSONではプロパティ名と文字列を二重引用符で囲み、要素間にカンマを置き、波括弧や角括弧を正しく閉じる必要があります。
対話的な変換と自動処理の両方に利用できます
ブラウザーツールは、APIレスポンスの調整、設定ファイルの準備、入れ子データの確認に便利です。JSONを貼り付けて変換し、対象アプリケーションの要件を確認してからYAMLをコピーしてください。反復処理では、1項目あたり$0.002のAPIを呼び出し、不正な入力は再試行ではなく確定的な検証エラーとして扱います。
連携の活用例
YAML設定を作成します
JSONで書き出された設定を、構造と型を保った読みやすいYAML文書へ変換します。
APIの例を公開します
検証済みのJSONリクエストやレスポンスからYAML版を生成し、二重管理を避けます。
形式移行を自動化します
JSON成果物を、検証、レビュー、配布の前に再現可能なYAMLへ変換します。
技術的な質問
JSONからYAMLへの変換料金はいくらですか?
API変換は1項目あたり$0.002です。対話的な変換にはブラウザーをご利用いただけます。
JSONが不正な場合はどうなりますか?
解析器のメッセージを含むinvalid_inputエラーを返し、不完全なYAMLは生成しません。
ルートを配列やプリミティブ値にできますか?
はい。オブジェクト、配列、各種プリミティブを含む完全なJSON値を変換できます。