本文へスキップ
kitto works
ツール一覧

JSON整形・検証(フォーマッター)|minify・構文エラー検出

JSONを整形(インデント2/4スペース・タブ)または圧縮(minify)し、構文エラーがあれば発生箇所の行・列番号とともに表示します。入力したJSONはブラウザの中だけで処理され、外部には送信されません。

出力形式

入力したJSONはブラウザの中だけで処理され、どこにも送信されません。

結果

JSONを入力すると、その場で整形・検証結果が表示されます。

使い方

  1. 入力欄にJSONを貼り付けます。
  2. 「整形」か「圧縮」を選びます。整形の場合はインデント幅(2スペース/4スペース/タブ)も選べます。
  3. その場で結果が表示されます。構文エラーがある場合はエラー内容と発生箇所(行・列)が表示されます。「結果をコピー」でクリップボードにコピーできます。

計算・変換の根拠

処理方法

ブラウザ標準の JSON.parse / JSON.stringify を使って処理します。独自のJSONパーサは実装していません。そのため、JSON仕様(RFC 8259)に厳密に準拠しない入力(末尾カンマ、シングルクォートのキー、コメントなど)は、一般的なJavaScriptエンジンと同じ基準でエラーになります。

整形(Format)

JSON.stringify(値, null, インデント) によってインデント付きの読みやすい形式に変換します。インデント幅は2スペース・4スペース・タブから選べます。

圧縮(Minify)

JSON.stringify(値) によって、余分な空白・改行を取り除いた最小サイズの形式に変換します。

構文エラーの表示

構文エラーが発生した場合、ブラウザ(JavaScriptエンジン)が返すエラーメッセージをそのまま表示します。メッセージに文字位置の情報が含まれる場合は、入力全体を走査して行番号・列番号を算出し、あわせて表示します。位置情報が含まれないメッセージの場合は、メッセージのみを表示します。

入力サイズの上限

500万文字を超える入力はエラーになります。それ以下であれば、ブラウザの処理性能が許す範囲で大きなJSONも扱えます。

Unicode文字について

\uXXXX 形式のUnicodeエスケープは正しく解釈され、整形・圧縮後の出力では実際の文字(例: \u3042 → 「あ」)として表示されます。

よくある質問

入力したJSONはどこかに送信されますか?

送信されません。整形・圧縮・構文検証はすべてお使いのブラウザの中だけで行われ、外部への通信は一切発生しません。

末尾にカンマがあるとなぜエラーになりますか?

JSON仕様(RFC 8259)では、オブジェクトや配列の最後の要素の後にカンマを置くことは認められていません。JavaScriptのオブジェクトリテラルでは許容されることがありますが、JSONとしては不正な形式です。このツールはブラウザ標準のJSONパーサをそのまま使っているため、同じ基準でエラーとして検出します。

コメントやシングルクォートのキーを含むJSONも整形できますか?

できません。JSON仕様ではコメントは認められておらず、キーや文字列は二重引用符(")で囲む必要があります。これらを含む入力は構文エラーとして扱われます。JSON5やJSONCなど拡張構文の対応は行っていません。

エラーメッセージの内容がブラウザによって違うのはなぜですか?

構文エラーの詳細な文言は、各ブラウザが内蔵するJavaScriptエンジン(V8・SpiderMonkey・JavaScriptCoreなど)が生成するものをそのまま表示しているためです。文言の言い回しはエンジンごとに異なりますが、エラー内容(どこが不正か)自体は同じJSON仕様に基づいて判定されています。

とても大きなJSONファイルでも整形できますか?

500万文字までは処理できます。それを超える入力はエラーになります。非常に大きなJSONを扱う場合、ブラウザの処理性能によっては表示が遅くなることがあります。