完全無料

JSON を フォーマット & 検証

ブラウザ上でJSONを即座にフォーマットし、検証します。アップロード不要で、完全にプライベートかつ無料です。

JSONファイルをここにドラッグ&ドロップ

.jsonファイルに対応。または上のエリアにJSONを貼り付けてください。

または

このツールについて

JSON フォーマット (多くの場合、整形または美化と呼ばれます) は、コンパクトな JSON を使用し、空白 (改行、インデント、一定の間隔) を追加して、構造が人間の読者に見えるようにします。コンパクトな JSON は送信に適した形式であり、ネットワークおよびストレージ上のバイト数を最小限に抑えます。フォーマットされた JSON は検査に適した形式です。インデントされた階層によりネストされた構造が一目でわかり、差分が意味のあるものになり、開発者はドキュメントを頭の中で解析することなく特定のフィールドを見つけることができます。

このフォーマッタは入力を JSON として解析して有効であることを確認し、一貫したインデントで再出力します。無効な入力を行うと、構文の問題を示すエラーが発生します。有効な入力は、ソースがどれほどコンパクトか乱雑であるかに関係なく、再フォーマットされます。インデントのデフォルトは 2 つのスペースで、最も一般的な JavaScript 規則に一致します。

フォーマッタは、不要な空白をすべて削除して最小の有効な JSON を生成する縮小化 (逆操作) も提供します。縮小された出力は本番環境の送信に役立ちます。フォーマットされた出力は、開発とデバッグに役立ちます。

JSON をフォーマットする理由

インデントなしで深くネストされた JSON を読み取ることは本質的に不可能です。構造は技術的には存在しますが、目に見えません。適度に複雑な JSON であっても、フォーマットすることで大きなメリットが得られます。コードレビュー担当者、API デバッガー、およびデータペイロードを理解しようとする人は、実際にそこにあるものを確認するためにフォーマットされた JSON を必要とします。

フォーマットによってもエラーが検出されます。 JSON がフォーマット中に解析に失敗した場合、エラー メッセージは構文上の問題の正確な位置を示します。多くの場合、コンマの欠落、引用符で囲まれていないキー、または生成システムがフラグを立てなかった末尾のカンマが不明です。フォーマッタは、利用可能な最も単純な JSON バリデータです。

使い方

JSON を貼り付け、「形式」をクリックします。

  1. JSON を貼り付けます: 未加工または圧縮された JSON を入力領域に貼り付けます。 .json ファイルのドラッグ アンド ドロップも機能します。
  2. インデントの選択: デフォルトは 2 スペースです。その規則に従うプロジェクトには 4 つのスペースを使用し、ダウンストリーム ツールで必要な場合はタブを使用します。
  3. フォーマット: 入力は JSON.parse を介して解析され、有効性が確認された後、JSON.stringify と選択されたインデントを使用してシリアル化されます。入力にエラーがあると、問題の場所を特定する解析エラー メッセージが生成されます。
  4. コピーまたはダウンロード: フォーマットされた JSON をクリップボードにコピーするか、.json として保存します。出力は構造的には入力と同じですが、一貫した空白が含まれています。

一般的な使用例

技術的な詳細

フォーマッタは、すべての JavaScript ランタイムに付属する同じペアである JSON.parse と JSON.stringify を使用します。解析は RFC 8259 (現在の JSON 仕様) に従っており、厳密な JSON は受け入れられますが、JavaScript オブジェクト リテラル、コメント、末尾のカンマ、およびその他の JSON5 拡張は拒否されます。

JSON.stringify は、数値 (スペース) または文字列 (タブなどのカスタム インデント文字) のインデント引数を受け入れます。フォーマッタは両方のオプションを公開します。出力はオブジェクトのソース順に並べ替えられます (ES2015 ではすべての主要なエンジンにわたってプロパティの挿入順が保持されているため)。

エッジケース: Number.MAX_SAFE_INTEGER を超える大きな数値は、解析時に精度が失われます (JSON の既知の制限。2^53 を超える ID には文字列値を使用してください)。文字列内の Unicode エスケープは文字通り保持されます。末尾の空白は各行から削除されます。

ベストプラクティス

よくある質問

このツールはどのような種類の JSON エラーを検出しますか?
このツールは、RFC 8259 JSON 仕様に従って、カンマの欠落、一致しない括弧/中括弧、無効な文字列エスケープ、末尾のカンマ、一重引用符で囲まれた文字列、その他の構文違反を検出します。
非常に大きな JSON ファイルを処理できますか?
はい。フォーマッタはネイティブ JavaScript 解析を使用してブラウザで JSON を処理するため、最大数メガバイトのファイルを効率的に処理できます。非常に大きなファイル (50MB 以上) の場合、処理時間はデバイスによって異なります。
コメント付きの JSON (JSONC) はサポートされていますか?
標準の JSON ではコメントが許可されません。入力にコメントが含まれている場合、バリデーターはコメントにエラーとしてフラグを立てます。 JSONC をサポートするには、フォーマットする前にコメントを削除してください。
書式設定するとデータ値が変わりますか?
いいえ。書式設定では空白とインデントのみが調整されます。データ型、値、構造はまったく同じままです。
JSON5 機能 (コメント、末尾のカンマ) はサポートされていますか?
いいえ。フォーマッタは RFC 8259 に厳密に従います。 JSON5 の機能により解析エラーが発生します。 JSON5 を使用するには、まず JSON5 パーサーを使用して標準 JSON に変換します。
私の JSON はサーバーにアップロードされていますか?
いいえ。解析と書式設定は、組み込みの JSON 関数を使用してブラウザ内で完全に行われます。
数値が大きいと精度が失われますか?
JavaScript は数値を 64 ビット浮動小数点として表現するため、2^53 (約 9 京) を超える整数は精度が失われます。 ID またはその他の大きな整数値の場合は、JSON の文字列として保存します。
キーをアルファベット順に並べ替えることはできますか?
JSON.stringify はキーをソートしません。文字列化する前に、別の並べ替えステップ (または並べ替えをサポートするフォーマッタ) を使用して、キーをアルファベット順に並べ替えます。