Yueser

JSON 整形

JSON を貼り付けて、整形・1 行への圧縮・構文エラー位置の確認ができます。データがブラウザの外に出ることはありません。


  
説明

ブラウザ標準の JSON.parse、エラーメッセージに具体的な文字位置が示されます。数 MB の大きなファイルも処理できますが、メモリを多く使います。

使う場面

  • API のレスポンスが 1 行に圧縮されていて、フィールドの階層やネストを目で追いたいとき。
  • 送信前に、余分なカンマや引用符のないキー、エスケープされていない改行がないかを確認し、エラー位置を特定したいとき。

使わないほうがよい場面

  • 特定のフィールドの値だけを見たいとき。ブラウザの devtools の Network → Response で検索したほうが、JSON 全体を貼り付けるより速いです。
  • 数十 MB の JSON を一度だけ機械的に処理したいとき。コマンドラインの jq のほうがメモリを節約でき、テキストエリアに全文を載せずに済みます。
制限とプライバシー

整形はすべてブラウザ内で行われ、入力がアップロードされることも、URL やログに残ることもありません。制限は次のとおりです。ブラウザ標準の JSON.parse を使うため、コメント・シングルクォート・末尾カンマなどの非標準な記法はエラーになります。数値は倍精度浮動小数点数として扱われ、2^53−1 を超える整数は精度を失います。非常に大きなファイルはメモリを多く消費し、動作が重くなることがあります。

よくある質問

大きな JSON を読み込むとページが固まりますか?

数百 KB から数 MB 程度なら、通常はその場で整形できます。大きくなるほど JSON.parse と JSON.stringify がテキストの数倍のメモリを同時に保持するため、数十 MB のファイルはメモリの少ない端末で固まったり失敗したりすることがあります。アップロードは行わないので、遅い場合でも影響はこのタブだけです。再読み込みすれば元に戻ります。

position 123 というエラーは、どこを見ればいいですか?

position はブラウザの JSON.parse が返す文字オフセットです(Chrome/Edge では 0 始まりで、行と列も表示されます)。解析が止まった位置であり、誤りそのものとは限りません。カンマ漏れは次のキー、末尾の余分なカンマは閉じ括弧の位置で報告されることが多いので、表示位置の数行前から確認してください。Safari や Firefox では文言と位置が少し異なります。

長い整数 ID が整形後に変わるのですが、精度は保てますか?

保てません。JSON.parse はすべての数値を IEEE-754 の倍精度浮動小数点数に変換するため、2^53−1(9,007,199,254,740,991)を超える整数は精度を失います。たとえば 1234567890123456789 は 1234567890123456800 になります。これは JSON.parse の制限で、整形によるものではありません。注文番号やスノーフレーク ID は引用符で囲んだ「123...」のような文字列で受け取るか、BigInt 対応のパーサーを使ってください。本ツールは元の数値表記を保持しません。