JSON整形
JSONを整形・圧縮。構文エラーの行と列を表示、ツリーで開閉でき、大きな整数も正確なまま。無料・登録不要、データはアップロードせずブラウザ内で処理します。
- エラー位置を表示
- ツリーで開閉
- 大きな整数も正確
- ワンクリック圧縮
正しいJSONを入力すると、開閉できるツリーがここに表示されます。
データはブラウザ内だけで処理され、アップロードも保存もされません。
🔒 計算はすべてブラウザ内で行われ、データがサーバーに送信されることはありません。
こんなときに使えます
- API のデバッグ:API から返ってきた1行の JSON を読みやすく整形し、ツリー表示で目的の項目を探せます。
- 設定ファイルの修正:カンマや引用符が足りないとき、何行目の何列目が間違っているかを表示します。
- 本番前の圧縮:ワンクリックで1行にまとめて、ファイルサイズを減らしたりコードに貼り付けやすくしたりできます。
- 比較の下準備:「キーを並べ替え」にチェックして2つの JSON の項目順をそろえてから、テキスト比較ツールで差分を確認できます。
使い方
- 左の入力欄にJSONを貼り付けるか、「ファイルを開く」で .json ファイルを読み込みます。入力中も構文がチェックされ、右側のツリー表示が自動で更新されます。
- インデント(スペース2つ・4つ・タブ)を選び、「整形」で読みやすい複数行に、「圧縮」で1行にまとめます。「キーを並べ替え」にチェックすると、すべてのオブジェクトのキーが順番に並びます。
- 構文エラーがあると何行目の何列目かを表示します。「エラー箇所へ」を押すと該当の文字が選択されます。仕上がったら「コピー」で持ち出せます。
使用例
末尾の余分なカンマ:{、"name": "Pockez",、"tags": ["json", "tool"],、} の4行を入力すると「4行目 1列目:最後の項目の後ろに余分なカンマがあります」と表示されます。指しているのは } の位置ですが、消すべきなのは3行目末尾のカンマです。
大きな整数も正確:{"orderId":9007199254740993,"price":1.50} を JavaScript の JSON.parse で読むと 9007199254740992、価格は 1.5 になります。このツールで整形すると 9007199254740993 と 1.50 のままで、「安全な範囲を超える整数が 1 個あります」と表示されます。
キーの並べ替え:{"name":"Alice","age":30,"tags":["a","b"]} を「キーを並べ替え」オン、スペース2つで整形すると、キーは age、name、tags の順になり、tags 配列の中の a、b の順番は変わりません。
結果の見方
- 「正しいJSONです」はデータ全体がJSONの標準(RFC 8259)に沿っていることを示し、どのプログラミング言語でも読み込めます。
- エラーの行と列は、パーサーが最初に読めなかった位置です。実際に直す箇所はその少し前にあることが多く、たとえばカンマ漏れは次のキーの先頭で報告されます。
- ツリー表示の { 3 } はフィールドが3つのオブジェクト、[ 2 ] は要素が2つの配列です。点線の下線が付いた数値は大きな整数で、マウスを重ねると説明が出ます。
- 大きな整数の表示はデータの誤りではありません。受け取る側が JavaScript のように倍精度浮動小数点で読むと値がずれるため、文字列で渡すか BigInt で扱うことをおすすめします。
仕組みと計算方法
- RFC 8259 と ECMA-404 の文法に沿って1文字ずつ読む独自のパーサーを使い、最初のエラーで止めて位置を報告します。ブラウザ内蔵の JSON.parse に頼らないため、どのブラウザでもエラー位置と説明が同じです。
- 整形と圧縮は空白と改行を並べ直すだけです。文字列はエスケープの書き方を保ち(\u00e9 は \u00e9 のまま)、数値も元の書き方を保ちます(1.50 や 1e400 はそのまま)。キーの元の順番や重複したキーも残ります。
- キーの並べ替えは UTF-16 のコード単位順(JavaScript の標準のソートと同じ)で、すべてのオブジェクトを再帰的に並べます。同じキーは元の前後関係を保ち、配列の順番は変えません。
- 絶対値が 2^53−1(9007199254740991)を超える整数を大きな整数として表示します。小数点や指数を含む数値は対象外です。
注意点と制限
- 受け付けるのは標準のJSONだけです。コメント、末尾のカンマ、シングルクォート、NaN、undefined など JSON5 や JavaScript の書き方はエラーになります。
- 一度に報告するのは最初のエラー1つです。直すと次のエラーのチェックに進みます。
- 入れ子が1000階層を超えるとブラウザが固まらないよう解析を止めて知らせます。
- 数十MBの大きなファイルではブラウザが重くなることがあります。ツリーは最初の2階層だけを開き、「すべて展開」は全ノードを作るので、大きなファイルは必要な部分だけ開いてください。
よくある質問
JSONがエラーになるのはなぜ?
よくある原因は、最後の項目の後ろの余分なカンマ、ダブルクォートではなくシングルクォート、クォートなしのキー、// コメント、undefined や NaN の記述です。JavaScriptでは書けても、標準のJSONでは使えません。エラーメッセージに位置と原因が表示されます。
大きな数値は書き換えられますか?
いいえ。JavaScriptの JSON.parse を使うツールでは、9007199254740991 を超える整数(例:ID 9007199254740993)が近い値に丸められてしまいます。このツールは元の桁をそのまま保持し、該当する整数がいくつあるかを知らせます。
整形するとデータが変わりますか?
変わりません。整形と圧縮は空白と改行を調整するだけで、文字列、数値の書き方(1.50 など)、キーの順番はそのままです。「キーを並べ替え」をオンにしたときだけキーの順番が変わり、配列の順番は常にそのままです。
データはアップロードされますか?
されません。解析・整形・ツリー表示はすべてブラウザ内で行われ、サーバーへの送信や保存はありません。個人情報やAPIキーを含む設定ファイルも安心して扱えます。
JSON にコメントは書けますか?
標準の JSON は // や /* */ のコメントに対応しておらず、エラーになります。コメントが必要な設定ファイルには、JSONC、JSON5、YAML などの形式がよく使われます。
JSON を Excel や CSV に変換するには?
当サイトの「CSV JSON 変換」で「JSON → CSV」を選んでデータを貼り付け、ダウンロードした CSV を Excel で開いてください(日本語が文字化けしないよう「CSVにBOMを付ける(Excel文字化け対策)」はオンのままにします)。
JSON と JavaScript のオブジェクトの違いは?
JSON はテキストのデータ形式で、キーは必ずダブルクォートで囲み、末尾のカンマは使えず、関数や undefined も入れられません。JavaScript のオブジェクトはずっと自由に書けます。
参考資料
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format — IETF
- ECMA-404: The JSON data interchange syntax — Ecma International
- Number.MAX_SAFE_INTEGER — MDN Web Docs