JSONテキスト整形
1行に詰まったデータを、読みやすく字下げしたテキストに整えます。例の53バイトは、1階層2スペースで79バイトの読みやすい形になります。壊れた箇所は推測せず、正確な位置をお知らせします。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- {"name":"Ada","skills":["math","code"],"active":true}
- インデント
- 2
- 入力バイト数
- 53
- 出力バイト数
- 79
インデントと解析エラー位置を表示
字下げの前に必ず確認する理由
改行を足すだけの整形ツールでは、データが正しいかどうかは分かりません。このツールは、まずプログラムと同じ厳しさでテキスト全体を読み取り、そのあとで1階層ごとに決まった数の空白を入れて書き直します。この読み取りによって、括弧がすべて対になっていること、引用符で囲んだ文字が閉じていること、数値が正しいこと、リストの末尾に余分なカンマが残っていないことを保証できます。問題があれば読み取りが止まった文字の位置が分かるので、長い1行を目で追わずに、間違ったカンマや引用符、余った断片へすぐにたどり着けます。
読む、見直す、詰めるの使い分け
人が読む場合は、2スペースか4スペースがよく使われます。コードの見直しやサポートへの問い合わせ、ログの確認などに向いています。0スペースにすると逆の働きになり、確認に通ったデータを1行に詰めて返すので、確認と圧縮を一度に済ませられます。壊れたデータを修復したり、並べ替えたりすることはありません。正しい形で入ったものは、中身はそのまま、空白だけが新しくなって出てきます。普通の文章をこの形式に変換したい場合は、別のツールをご利用ください。
テキストを整えるときに実際に起きること
構造を理解せず改行だけを入れる見た目だけの整形とは異なり、真のプリティプリンタは先に解析する必要があります。そうして初めて、括弧の対応、文字列の終端、数値の妥当性、末尾カンマの拒否を保証できます。indent 0 は解析成功後に1行のコンパクトなシリアライズとなり、検証と最小化を一度に行いたい場合に有用です。
人手レビューでは2または4スペースが一般的です。有効なら整形結果、無効なら位置付きの明確なエラー。入力と出力のバイト数が含まれるため、大きな最小化blobが複数行文書になるときの膨張比をパイプラインが記録できます。
よくある質問
indent 0 は何をしますか?
文字列は先に完全に解析されるため、無効入力は位置付きで引き続きエラーになります。
テキストが無効と表示されるのはなぜですか?
厳密な読み取りが特定の文字で止まったためで、その位置が表示されます。多くはリスト末尾の余分なカンマ、閉じていない引用符、対になっていない括弧です。その箇所を直して、もう一度お試しください。
字下げは2スペースと4スペースのどちらがよいですか?
人が結果を確認する場合は、どちらもよく使われる設定です。何も指定しなければ1階層2スペースになり、0から8までの好きな値を選べます。
整形するとデータの順番や中身が変わりますか?
変わりません。変わるのは空白と改行だけです。名前の並べ替えや壊れた部分の修復はせず、テキスト以外から何かを取り込むこともないので、中身はそのまま出てきます。
整形するとテキストはどれくらい大きくなりますか?
整形前と整形後の大きさがバイト数で表示されます。例では、53バイトのテキストが1階層2スペースで79バイトになります。増えた分は改行と字下げです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/text/json-pretty-print \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"{\"name\":\"Ada\",\"skills\":[\"math\",\"code\"],\"active\":true}"}'const res = await fetch("https://api.kit.forhosting.com/text/json-pretty-print", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "{\"name\":\"Ada\",\"skills\":[\"math\",\"code\"],\"active\":true}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/json-pretty-print",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "{\"name\":\"Ada\",\"skills\":[\"math\",\"code\"],\"active\":true}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/json-pretty-print", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"{\\"name\\":\\"Ada\\",\\"skills\\":[\\"math\\",\\"code\\"],\\"active\\":true}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"{\"name\":\"Ada\",\"skills\":[\"math\",\"code\"],\"active\":true}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/json-pretty-print", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "{\"name\":\"Ada\",\"skills\":[\"math\",\"code\"],\"active\":true}"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.json_pretty_print",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_tokens | 20000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
1行に圧縮されたJSONやインデントが不揃いなJSONは、コードレビューやサポート票、ログダンプで読みにくいものです。このJSONテキスト整形ツールは生のJSON文字列を受け取り、厳密な解析で検証し、入れ子のオブジェクトや配列が揃うよう一定のスペースインデントで再シリアライズします。ペイロードが無効な場合、タスクは invalid_input で失敗し、解析エラーの文字位置を報告するため、誤ったカンマ・引用符・末尾断片へ直接ジャンプできます。標準JSONシリアライズを超えるキー並べ替えはなく、ネットワーク往復もモデルトークンもなく、成功した呼び出しごとに公開の基本料金 $0.002 で決定的なparseとstringifyのみを行います。
JSON文字列の整形が実際に行うこと
JSONテキストの整形とは、JSONであると主張する文字列を値として解析し、入れ子レベルごとに固定数のスペースでその値を書き戻すことです。本機能は text フィールドを元文字列として厳密なJSON解析を実行し、任意の indent パラメータ(0から8の整数、既定は2スペース)で制御される一貫したインデント付きの新しい text を返します。アルゴリズムは遠隔スキーマを取得せず、壊れたJSONを修復せず、解析後オブジェクトに対するエンジン自然なシリアライズ順を超えてキーを並べ替えません。この抑制により契約は単純です。
入力契約・応答フィールド・解析エラー位置
任意で indent を0から8の整数として送り、省略時は2スペースを使います。解析が失敗するとエラーメッセージは常に文字位置を含みます。「at position N」を報告するエンジンはそのNを反映し、不完全入力は文字列末尾に対応づけ、その他の失敗は位置0に既定してクライアントが常にカーソル先を持てるようにします。報告されたオフセットへシークしてエディタやログビューアと組み合わせれば、二度目の検証呼び出しは不要です。整形対象の文書を含む必須の text 文字列を持つJSON本体をPOSTしてください。空の text、文字列以外、範囲外の indent は invalid_input で失敗し課金されません。成功時の応答には text(整形済み文書)、indent(実際に使った間隔)、bytes_in(元文字列のUTF-8長)、bytes_out(整形結果のUTF-8長)が含まれます。例:入れ子配列を含む最小化オブジェクトの text と indent 2 は、2スペース刻みで括弧が対応した複数行JSONを返します。失敗例:閉じ括弧のない切り詰めオブジェクトは断片末尾付近の位置を示す invalid_input になります。
JSONテキスト整形が役立つ場面
CIジョブは上流生成器から届いた最小化設定を拒否または書き直し、リリース成果物がアップロード途中で切れたときに解析位置付きで素早く失敗できます。検証失敗は残高を消費しません。開発者はAPI応答をチャットやチケットに貼ります。JSONテキスト整形は、デスクトップ整形ツールを入れずに不透明な1行をレビュー可能な木構造に変えます。サポートツールは「無効なJSON」という一般バナーの代わりに、不正なwebhook本体の正確なオフセットを顧客に示します。実装は純粋なparseティアAのため、成功した呼び出しは毎回公開の基本料金 $0.002 で、モデルトークンも外向きネットワークもありません。ログ・ファイル内容・メッセージ本体のようにパイプラインがJSONをすでに文字列として保持する場合は、事前解析オブジェクトではなくこのテキスト入出力契約を選んでください。
連携の活用例
読みやすいAPI・webhookダンプ
最小化されたリクエスト/レスポンス本体をチケット・チャット・ポストモーテム向けのインデント付きJSONに変換し、ダンプが切れているときは解析位置を示します。
CIでの設定・フィクスチャ検査
パイプラインでJSONフィクスチャを検証・整形し、生成器が壊れた構文を出したときは invalid_input と文字オフセットでジョブを失敗させます。
サポートとエディタのエラージャンプ
サポート担当と利用者にJSON構文エラーの正確な文字位置を示し、カンマ・引用符・欠落した括弧を素早く直せるようにします。
技術的な質問
JSON文字列をどう整形しますか?
text フィールドにJSONを送り、任意で indent(0–8、既定2)を設定します。成功時はインデント済み text と bytes_in・bytes_out を受け取ります。
JSONが無効な場合はどうなりますか?
タスクは invalid_input で失敗し、不正トークンを特定できるよう解析エラーの文字位置を含むメッセージを返します。無効入力は課金されません。
JSONテキスト整形はオブジェクトのキーを並べ替えますか?
いいえ。キーは解析後のエンジン自然順を保ちます。本ツールはインデントと検証に焦点を当て、決定的なキー並べ替えは行いません。
JSONテキスト整形APIの料金は?
ブラウザツールは無料です。APIリクエストは前払いKIT残高を成功した呼び出しごとに $0.002 で使用し、無効入力は課金されません。