JSON整形・検証ツール|エラー位置の特定と統計表示(無料)

APIの応答を確認する、設定ファイルの誤りを探す、ログに出た1行のJSONを読む。JSONは読めれば一瞬ですが、1行に詰まった状態では人間には読めません。そして構文エラーがあると、どこが悪いのかも分かりません。

このツールは、貼り付けたJSONを整形し、エラーがある場合は何行目の何文字目かと、その前後の文字列まで示します。あわせて、キーの総数、入れ子の深さ、配列の要素数、サイズも表示するので、扱っているデータの規模がひと目で分かります。

処理はすべてブラウザの中で行われます。入力したデータはサーバーに送信されません。APIキーや個人情報を含むJSONでも、そのまま貼り付けられます。

JSON整形・検証

ブラウザ内で処理します。入力したデータは送信されません。

STATUS
SIZE
KEYS
DEPTH
ARRAY ITEMS

JSONの構文エラー、原因の9割はこの5つ

エラーメッセージは英語で分かりにくいのですが、実際に起きる原因は限られています。上から順に確認してください。

原因誤り正しい形
末尾のカンマ[1, 2, 3,][1, 2, 3]
キーがクォートされていない{name: "a"}{"name": "a"}
シングルクォート{'name': 'a'}{"name": "a"}
コメントが書いてある{ // メモJSONにコメントは書けない
数値の書き方{"n": .5} / {"n": 01}{"n": 0.5} / {"n": 1}

JavaScriptのオブジェクトとJSONは別物です。JavaScriptではキーのクォートを省略でき、シングルクォートも使え、末尾のカンマも許されます。その感覚のままJSONを書くと、上の1〜3が起こります。JSONで使える引用符はダブルクォートだけと覚えてください。

JSONで使える型は、6種類しかない

書き方注意点
文字列"text"ダブルクォートのみ
数値123 / -0.5 / 1e3NaNやInfinityは使えない
真偽値true / false小文字のみ。TrueはNG
nullnull小文字のみ。undefinedは使えない
配列[1, "a", null]型が混ざっていても構わない
オブジェクト{"k": "v"}キーは必ず文字列

ここに日付型がない点が実務上の落とし穴です。日付は文字列として表現するしかなく、書き方はシステムごとに決めることになります。相互運用するなら、ISO 8601形式(2026-08-23T12:00:00Z)を使うのが最も安全です。「2026/8/23」のような形式は、受け取り側の解釈がばらつきます。

「二重にエスケープされたJSON」を元に戻す

ログやAPI応答で、こういう文字列を見ることがあります。

"{\"name\":\"takumi\",\"count\":3}"

これはJSONを文字列として、さらにJSONの中に入れた状態です。そのまま整形しようとしても、ただの文字列として扱われるため中身は展開されません。

このツールの「エスケープ解除」ボタンを押すと、一段外側の文字列を剥がして中身のJSONを取り出します。そのうえで「整形する」を押せば、読める形になります。二重・三重になっている場合は、解除を繰り返してください。

状態見分け方対処
普通のJSON先頭が { または [そのまま整形
エスケープされたJSON先頭が " で、中に \" が並ぶエスケープ解除 → 整形
二重エスケープ\\" が並ぶ解除を2回

大きなJSONを扱うときの注意

サイズ挙動対処
〜1MB問題なく処理できる
1〜10MB整形に数秒かかる場合があるブラウザが応答するまで待つ
10MB超ブラウザが重くなるコマンドライン(jqなど)を使うほうが速い

また、桁数の大きな整数は、精度が落ちることがあります。JavaScriptが安全に扱える整数は約9,007兆までで、それを超えるID(例:SNSの投稿ID)は、整形の過程で末尾が変わる可能性があります。この種のIDを扱うAPIは、はじめから文字列として返す設計になっていることが多く、そのままにしておくのが正解です。

キーの並べ替えが役に立つ場面

「キー順に並べ替え」は、見た目を整えるためだけの機能ではありません。2つのJSONを比較するときに効きます。

同じ内容でも、キーの並び順が違うだけで差分ツールは「違う」と判定します。両方をキー順に並べ替えてから比較すると、本当に値が違う箇所だけが浮かび上がります。設定ファイルの環境間比較や、API応答の変化を追うときに使ってください。

形式特徴向いている用途
JSON機械が読みやすい。コメント不可API、データ交換
YAML人が書きやすい。コメント可。インデントに厳格設定ファイル
TOML設定向けに設計。曖昧さが少ない設定ファイル
CSV表形式に強い。入れ子は表現できない表計算との連携
JSON Lines1行1JSON。追記しやすいログ、大量データの逐次処理

用語の意味を確認したい場合は、当サイトのIT用語辞典に117語を掲載しています。文字列のパターン確認には正規表現テスターも使えます。

コメント付きJSONと、末尾カンマを許す方言

設定ファイルを開いたら、JSONなのにコメントが書いてある。これはJSONC(JSON with Comments)と呼ばれる拡張で、一部のツールが独自に受け付けている形式です。標準のJSONではないため、このツールを含む一般的なパーサーは弾きます。

形式コメント末尾カンマ使われる場所
JSON(標準)不可不可API、データ交換
JSONC可(// と /* */)可の実装が多いエディタの設定ファイルなど
JSON5人が手で書く設定

整形したいのにエラーになる場合は、コメント行を一時的に削除してから貼り付けてください。設定ファイルとして保存し直すときは、元のコメントを戻します。逆に、標準JSONを要求するAPIへコメント付きのまま送ると、相手側で必ずエラーになります。

API連携で詰まったときの、JSONまわりの確認手順

「APIが400を返す」「レスポンスが読めない」という場面で、原因がJSON側にあるかを切り分ける手順です。

順番確認読み取れること
1送っているJSONを、このツールで整形してみる整形できなければ、そもそも壊れている
2Content-Type が application/json になっているかここが違うと、相手はJSONとして読まない
3文字コードがUTF-8か日本語が含まれる場合、Shift_JISだと文字化けする
4数値が文字列になっていないか"count": "3""count": 3 は別物。型に厳密なAPIでは弾かれる
5nullと空文字を取り違えていないかnull"" は意味が違う。必須項目の判定に影響する
6入れ子の階層が仕様どおりかDEPTHの数字を仕様と見比べる

意外に多い原因が、コピー時に混入する不可視文字です。ブラウザやドキュメントからコピーすると、全角スペース、改行なしスペース、BOMなどが紛れ込むことがあります。エラー位置が「何もないところ」を指している場合は、これを疑ってください。該当箇所を一度削除して、半角スペースを打ち直すと直ります。

統計値の読み方|このツールが出す4つの数字

数字意味何に使えるか
SIZE整形後のバイト数APIのリクエスト上限やレスポンスサイズの見積もり
KEYSオブジェクトのキーの総数(入れ子を含む)データの規模感。仕様書との突き合わせ
DEPTH最も深い入れ子の階層階層が深いほど、プログラム側の取り出しが複雑になる。5を超えたら構造の見直しを検討する目安
ARRAY ITEMSすべての配列の要素数の合計件数の確認。ページングの取りこぼし検出

とくにARRAY ITEMSは、APIから「100件取れているはず」のデータが実際に何件かを一瞬で確認できます。ページング処理の実装ミスは、この数字を見るのが最短です。

JSONの構造を設計するときの、実務的な原則

自分でAPIやデータ形式を設計する側になったときの指針です。あとから直すのは大変なので、最初に決めておく価値があります。

原則理由
キー名は英小文字とアンダースコアで統一する大文字小文字の混在は、環境によって取り違えの原因になる
日付はISO 8601の文字列にするJSONに日付型はない。書式がばらつくと受け取り側が壊れる
大きなIDは文字列で持つJavaScriptの安全な整数の上限を超えると、値が変わる
配列は常に配列で返す1件のときだけオブジェクトを返す設計は、受け取り側に必ず分岐を強いる
入れ子は浅く保つ深いほど取り出しのコードが読みにくく、壊れやすくなる
nullを使う意味を決めておく「未設定」「該当なし」「取得失敗」を区別するなら、別の表現が必要

基本的な用語はIT用語辞典で確認できます。文字列のパターン検証には正規表現テスター、日時の変換にはUNIXタイム変換もあわせてお使いください。