JSON整形・検証
JSONを貼り付けると、読みやすいインデント付きに整形したり、1行に圧縮(minify)したり、構文が正しいかを検証できます。 インデント幅の指定やキーの並べ替えに対応し、構文エラーは位置(行・列)を推定して表示します。 登録不要、処理はすべてブラウザ内で行われ、入力内容は送信されません。
※ 入力内容はブラウザ内だけで解析・整形され、サーバーへ送信されません。 整形・圧縮した結果は、利用する前に内容をご確認ください。
このツールでできること
JSON整形・検証は、JSON(JavaScript Object Notation)形式のテキストを貼り付けるだけで、 読みやすいインデント付きに整形したり、余分な空白や改行を取り除いて1行に圧縮(minify)したり、 構文が正しいかどうかを検証できる無料ツールです。 インデント幅はスペース2・スペース4・タブから選べ、オブジェクトのキーを再帰的に並べ替えることもできます。 APIレスポンスの確認、設定ファイルの整理、ログに埋め込まれたJSONの可読化、 差分(diff)を取りやすくするための正規化などに使えます。 会員登録やアプリのインストールは不要で、パソコンでもスマートフォンでも同じように動作します。
使い方
- 入力欄にJSONを貼り付けます。
- 「整形(インデント)」を押すと、選んだインデント幅で整えた結果が下の欄に表示されます。「1行に圧縮(minify)」は空白と改行を除いて最小サイズにします。「検証のみ」は構文チェックだけを行います。
- 必要に応じて「インデント幅」や「キーを再帰的にソートする」を変更してから実行します。
- 結果は「結果をコピー」でクリップボードにコピーできます。やり直すときは「クリア」で入力と結果を消去します。
検証に成功すると、結果の文字数・階層の深さ・キーの総数・オブジェクトと配列の合計数を表示します。 構文エラーがあるときは、ブラウザが返したエラーメッセージに加えて、 エラーが起きた位置を「行・列」で推定して示します(ブラウザが位置情報を返さない場合はメッセージのみ)。
JSONでよくあるエラー
- 末尾のカンマ:配列やオブジェクトの最後の要素の後にカンマを置くとエラーになります(例:
[1, 2, 3,])。「末尾カンマを許容して整形する」を使うと、文字列の外にある末尾カンマだけを取り除いてから解釈を試みます。 - シングルクォート:JSONの文字列とキーは必ずダブルクォート(")で囲みます。
'値'は無効です。 - キーのクォート漏れ:
{name: "太郎"}は不可で、{"name": "太郎"}と書きます。 - 使えない値:
undefined、NaN、Infinity、末尾コメント、末尾に数字が続かない小数点などは使えません。 - 全角文字の混入:全角スペースや全角の記号(),:)が構造部分に紛れ込むとエラーになります。
- 余分なテキスト:JSONの前後にログの断片が付いていたり、複数のオブジェクトが連結されていたりすると解釈できません。
安全性について
入力したJSONの解析・整形・検証は、すべてお使いのブラウザ内のJavaScript(標準の JSON 機能)だけで行います。 当サイトや外部のサーバーへ送信・保存されることは一切なく、実行時に外部へ通信しません。 下書きの自動保存も行わないため、ページを閉じれば入力内容は残りません。 そのため、社内向けの設定値や公開前のデータでも安心して利用できます。 共用のパソコンで使うときは、作業後に「クリア」を押すか、ブラウザのタブを閉じてください。
よくある質問
入力したJSONはどこかに送信されますか?
いいえ。解析・整形・検証はすべてブラウザ内のJavaScript(標準のJSON機能)で行われ、入力内容が当サイトや外部サーバーへ送信・保存されることはありません。下書きの自動保存も行わないため、タブを閉じれば入力内容は残りません。
エラーの「行・列」はどうやって求めていますか?
ブラウザのエラーメッセージに含まれる position(先頭からの文字数)を読み取り、その位置までの改行の数から行番号を、直前の改行からの距離で列番号を計算しています。ブラウザによっては位置情報が含まれず、メッセージのみの表示になります。
「キーをソート」をオンにすると何が変わりますか?
すべてのオブジェクトについて、キーをアルファベット順(Unicodeコードポイント順)に再帰的に並べ替えてから出力します。配列の要素の順番は変更しません。差分を取りやすくしたいときに便利です。
末尾にカンマがあるJSONも整形できますか?
「末尾カンマを許容して整形する」をオンにすると、まず通常どおり解釈を試み、失敗した場合に限り、文字列の外にある「カンマの直後に ] または }」というカンマだけを取り除いて再度解釈します。簡易的な処理のため、複雑なケースでは意図しない結果になることがあります。
大きなJSONでも使えますか?
数MB程度までは動作しますが、ブラウザや端末の性能によっては整形に時間がかかったり、一時的に反応しなくなったりすることがあります。極端に大きいデータは分割してお試しください。