JSON整形・構文チェック・圧縮ツール
JSONを貼り付けると、すぐにRFC 8259に沿って構文をチェックし、エラーがあれば行・列と原因を表示します。正しいJSONはインデント付きで読みやすく整形するか、1行に圧縮してコピーできます。データはどこにも送信されません。
計算方法
何をチェックするのか
判定の基準は、JSONのインターネット標準であるRFC 8259(ECMA-404と同等)です。独自のパーサーで1文字ずつ読み進め、最初の規則違反で止まります。メッセージには行と列が表示され、該当箇所を^で示して何が間違っているかを説明します。ブラウザ内蔵のJSON.parseはブラウザごとにメッセージが異なり、「Unexpected token」のように情報が少ないことが多いため、どのブラウザでも同じ結果になるようにしています。
よくあるJSONのエラー
- 最後の要素の後の余分なカンマ:
{"a": 1,}– JavaScriptでは有効ですが、JSONではエラーです。 - シングルクォートやクォートなしのキー:
{'a': 1}、{a: 1}– 正しくは{"a": 1}です。 - コメント(
//、/* */)はJSONにはありません。 - JavaScriptやPythonの値:
undefined、NaN、Infinity、True、None– 使えるのはtrue、false、nullだけです。 - 数値:先頭の0(
012)、+1、.5や5.、16進数(0x1F)は不可です。 - 文字列:改行やタブは
\n・\t、バックスラッシュ1つは\\と書きます(Windowsのパスでよくある間違い)。 - 全角スペース・見えない文字:全角スペース(U+3000)やWebページからコピーしたノーブレークスペース(U+00A0)は、JSONでは空白として扱われません。日本語入力のまま打った全角の
:や,、”も記号として認識されません。
整形・圧縮・並べ替え
出力はチェック済みの内容から作り直されます。整形は階層ごとにスペース2つ・4つまたはタブでインデントし、圧縮は不要な空白をすべて削除して1行にします(ファイルサイズが最小)。数値と文字列は書かれたとおりに残ります。JSON.parse+JSON.stringifyと違い、1.0が1になったり、12345678901234567890が丸められたりしません。並べ替えはJSON Canonicalization Scheme(RFC 8785)と同じくUnicodeのコード単位順です。大文字は小文字より前、ひらがな・カタカナ・漢字はそれより後ろに並びます。
エラーではなく警告になるもの
同じオブジェクト内のキーの重複はRFC 8259で禁止されてはいませんが、信頼できません。多くのプログラムは最後の値だけを残します。先頭のBOM(バイト順マーク)はパーサーが無視してよいとされており、このツールも無視したうえでお知らせします。
制限
チェックするのは構文で、意味ではありません。必須項目の有無や型が正しいかは、JSON Schemaで確認します。列はUnicode文字を1から数えます(タブ=1文字、日本語の1文字も1列)。タブ幅4のエディタでは列番号が大きく表示されることがあります。入力は500万文字、入れ子は1,000階層までです。
よくある質問
JSONはどこかにアップロード・保存されますか?
いいえ。チェックも整形もすべてブラウザ内で行われます。テキストはURLに含まれず、保存もされません。リンクに入るのは設定(出力形式・インデント・並べ替え)だけです。
JSONを1行にするには?
出力形式で「圧縮(1行・空白なし)」を選びます。改行やインデントなど不要な空白がすべて削除され、1行のJSONになります。逆に1行のJSONを見やすくするには「整形」を選びます。
JSONのフォーマットが正しいかチェックするには?
JSONをここに貼り付けるだけです。正しければ「✓ 有効なJSON」と表示され、間違っていれば最初のエラーの行・列と原因が表示されます。「エラー箇所へ移動」でカーソルがその位置に移ります。
コメントや末尾のカンマはなぜ使えないのですか?
JSONは、どのプログラミング言語でも同じように読めるよう、意図的にシンプルに作られています。コメントや末尾のカンマはJSON5やJSONC(VS Codeの設定ファイルなど)といった拡張の機能で、通常のJSONとしては無効です。
有効なJSONなのにプログラムが受け付けないのはなぜですか?
多くの場合、内容がプログラムの期待と合っていません。必須項目がない、文字列のはずが数値になっている、構造が違う、などです。これはJSON SchemaやAPIの仕様書で決まります。キー重複の警告も確認してください。
「途中で終わっている」というエラーはどう探せばいいですか?
ほとんどの場合、閉じの } や ]、またはダブルクォートが足りません。メッセージには閉じられていない括弧の行が表示されるので、まずそのブロックの終わりを確認してください。
出典・根拠
- STD 90, §§ 2–9: IETF RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format
- ECMA-404 – The JSON Data Interchange Syntax, 2nd edition
- § 3.2.3: IETF RFC 8785 – JSON Canonicalization Scheme (Sortierung der Schlüssel)
- JSONTestSuite (Nicolas Seriot) – Testfälle für JSON-Parser
更新日:
関連ツール
- XML・CSV構文チェックXMLが整形式か、CSVがRFC 4180に沿っているかをブラウザ上でチェック。エラーの行と列、区切り文字の判定、表のプレビューを表示します。
- 正規表現チェックツールJavaScriptの正規表現をその場でチェックできるテストツール。一致した箇所を色付きで表示し、キャプチャグループを一覧に、パターンの意味を1つずつ日本語で解説します。
- Base64エンコード・デコードBase64・Base64urlのエンコードとデコードをUTF-8で正しく変換。日本語も文字化けしません。URLエンコード・デコードにも対応した無料ツールです。
- ハッシュ生成:SHA-256・SHA-512・SHA-1・MD5テキストやファイルのSHA-256、SHA-512、SHA-1、MD5ハッシュを生成し、チェックサムを照合できます。ブラウザー内で計算、アップロード不要です。
- UUID生成ツール:UUID v4・v7の生成と検証UUIDをオンラインで生成できる無料ツールです。v4(ランダム)とv7(時刻順)を最大1,000個まで一括生成。UUIDのバージョンや日時も解析できます。
- UNIX時間(Unixtime)変換ツールUNIX時間(タイムスタンプ)を日時に、日時をUNIX時間に変換します。秒・ミリ秒(13桁)・マイクロ秒・ナノ秒を自動判別し、日本時間とUTCを表示。