JSON を整形・検証するには?
JSON を貼り付けると、選んだインデントで整形し、または 1 行に圧縮し、構文エラーがあれば最初の 1 件の正確な位置を報告します。解析には JavaScript 自身の JSON パーサーを使うので、出力は構造上必ず有効です。
完全にブラウザ内で動作 · アップロードなし · アカウント不要 · 透かしなし
- 左のボックスに JSON を貼り付けます。
- インデントを選ぶか、1 行にするなら「圧縮」を使います。
- 結果をコピーするか、ツールが指し示すエラーを直します。
このページにできること
- 2 スペース、4 スペース、タブでの整形
- 1 行への圧縮
- 最初の構文エラーの行と列を報告する
- キーの並べ替えと、非 ASCII 文字の任意のエスケープ
このツールを使うべき場面
- 圧縮された API のレスポンスや 1 行の設定ファイルを読むとき。
- JSON をどこかへ貼り付ける前に、括弧やカンマの誤りを見つけるとき。
- リクエストボディ用に JSON を圧縮するとき。
別の方法を選ぶべき場面
- ペイロードが数十メガバイトある場合。メインスレッドで全体をメモリ上に解析します。
- JSON5、コメント、末尾のカンマ、スキーマ検証が必要な場合。
- jq のようなクエリ、差分、変換が必要な場合。
他の方法との違いと限界
エディター、jq、CLI の検証ツールは大きなファイルをストリーム処理し、スキーマに対して検証し、コメントを保ったまま、正確なソース範囲とともにエラーを説明します。このページはブラウザーの JSON.parse を呼び、エンジンが報告する内容を伝えるだけなので、問題の発端となった正確な文字とは限りません。1 つのレスポンスを読めるようにする手軽な手段であり、JSON の作業台ではありません。
あなたのファイルはどこへ
どこへも行きません。このページは処理を行うコードを読み込み、それ以降、あなたが開いたファイルはあなた自身のブラウザが読みます。アップロードの手順も、サーバー上の一時コピーも、信じる必要のある後片付けもありません。データはネットワークを一度も渡らないので、後から消すものは何も残りません。自分で確かめられます。ツールの実行中にブラウザのネットワークパネルを開いて、何も通信しないことを見てください。
このツールについての質問
- 自分のコードでは動く JSON をパーサーが拒否するのはなぜですか?
- JSON は JavaScript のより厳密な部分集合です。コメント、末尾のカンマ、シングルクォートの文字列、クォートされていないキー、そして NaN や Infinity といった値は許されません。JavaScript のオブジェクトリテラルを貼り付けたのなら、キーをクォートし、コメントを削除し、末尾のカンマを外してください。最初に問題がある行をツールが示すので、ファイル全体を探し回らずに済みます。
- キーを並べ替えるとデータは変わりますか?
- いいえ、変わるのはオブジェクトのキーを書く順序だけです。値には手を付けず、配列は順序に意味があるため元の並びを保ちます。並べ替えは、2 つの JSON 文書を、それぞれの作られ方に関係なくきれいに差分比較したいときに役立ちます。
- 貼り付けた JSON はどこかへ送られますか?
- いいえ。解析と整形には、このページで既に動いている JavaScript エンジンを使い、テキストがタブの外へ出ることはありません。開発者ツールのネットワークパネルを開いたまま整形しても、通信が起きないことを確かめられます。