JSON整形・検証ツール

JSONを貼り付けて整形・圧縮・構文チェックができます。処理はブラウザ内で完結し、貼り付けた内容が外部に送信されることはありません(API応答や設定ファイルも安心して扱えます)。

入力

出力

JSONでエラーになりやすい書き方

JSONはJavaScriptのオブジェクト記法に似ていますが、ルールはより厳格です。エラーの原因はほぼ次のどれかです。

① 末尾のカンマ — {"a": 1,} はエラー。最後の要素の後ろにカンマは置けません
② シングルクォート — {'a': 1} はエラー。文字列は必ずダブルクォート
③ キーのクォート漏れ — {a: 1} はエラー。キーも必ず "a" と書く
④ コメント — JSONに // や /* */ は書けません
⑤ 制御文字・全角スペース — コピペで紛れ込んだ見えない文字が原因のことも

JSONで使えるデータ型

型書き方の例エラーになる書き方
文字列"abc"'abc'(シングルクォート)
数値42 -3.14 1e3012(先頭の0)、0x1F、NaN、Infinity
真偽値true falseTrue(大文字始まり)
nullnullundefined、None
オブジェクト{"a": 1}キーを " で囲まない書き方
配列[1, "a", null](型を混ぜて並べてよい)

Pythonの True や None をそのまま文字列にしてJSONとして渡すと、受け取った側でエラーになります。Pythonでは json.dumps() を使うと、true や null に正しく変換されます。

ハマりやすいポイント

大きな整数は精度が落ちることがある。 JSON自体は桁数を制限しませんが、JavaScriptで読み込むと数値は内部的に倍精度小数として扱われ、9,007,199,254,740,991(2の53乗−1)を超える整数は正確に保てません。SNSの投稿IDやSnowflake IDのような大きなID値が、末尾だけ変わってしまう事故はこれが原因です。この手のIDは数値ではなく文字列("1234567890123456789")として持つのが定石です。

JSONに「日付型」はない。 日時は文字列で表すしかなく、"2026-08-28T12:00:00Z" のようなISO 8601形式が広く使われます。パースしても自動で日付オブジェクトになるわけではないので、受け取った側で変換する必要があります。

コメントや末尾カンマが書ける設定ファイルは、実はJSONではない。 VS Codeの settings.json などで // コメントや末尾カンマが許されるのは、それがJSONC(JSON with Comments)という別方言だからです。これらを厳密なJSONとしてパースするとエラーになります。標準JSONと混同しないよう注意してください。

よくある質問

Q. コマンドラインで整形するには?
A. Linuxなら cat file.json | jq .、PowerShellなら Get-Content file.json | ConvertFrom-Json | ConvertTo-Json -Depth 10 が定番です(PowerShellは既定で深さ2までしか展開しないため -Depth 指定が重要)。

Q. 「圧縮」は何のため?
A. 改行とスペースを取り除いて1行にします。設定値として埋め込む場合やデータ量を減らしたい場合に使います。読みやすさは失われるので保管用には整形版を。

Q. 5MBのログJSONを貼っても大丈夫?
A. ブラウザ内処理なのでサーバー側の制限はありませんが、数十MB級になるとブラウザの動作が重くなります。その規模は jq などのコマンドラインツールが適しています。