開発ツールを整える
中級JSONを整える。
= 壊れたJSONの場所と原因を日本語で。整形・圧縮・修復もブラウザ内で
アニメで見る — コピペでJSONが壊れるしくみ 開くと1ステップずつ動きます
チャット・Word
コピー元
自動変換
スマート引用符化
壊れたJSON
構文エラー
診断
行・列と原因を特定
直ったJSON
再検証まで自動
STEP 1
※ イメージ図です。下の入力欄に実際のJSONを貼ると、診断・修復まで試せます(送信ゼロ)。
① JSONを貼り付ける
貼り付けたそばから、構文チェックと診断を実行します。ファイルのドラッグ&ドロップにも対応。
ファイルをドラッグ&ドロップしても読み込めます(.json・.txt など)。
② 診断結果
構文エラーの位置と原因、修復候補の一覧です。エラー位置はエンジンのメッセージに頼らず、このツールが自前で特定しています。
状態
JSONを貼り付けると診断結果が表示されます
指摘事項
0件- JSONを貼り付けると、ここに指摘事項が表示されます。
③ 整形・圧縮
正しいJSONと診断されると、整形・圧縮の結果が下に表示されます。数値は元の桁のまま、1文字も変わりません。
⚠️ 構文エラーがあるため整形できません。上の指摘を直してからお試しください。
空白・改行を取り除き、1行にまとめます。API送信用のペイロード確認などに。
⚠️ 構文エラーがあるため圧縮できません。上の指摘を直してからお試しください。
なぜ「送信ゼロ」と言えるのか
このツールのJSON処理は、ページに同梱した処理プログラム(自前のJSONスキャナ・パーサ)がブラウザの中だけで行います。構文チェックも、指摘の検出も、修復も、整形・圧縮も、すべてこの端末のメモリ内で完結します。信じなくても確認できます——ブラウザの開発者ツールの「ネットワーク」タブを開いたままJSONを貼り付けてみてください。データを送る通信は発生しません。
場面 01
ChatGPTのJSONが読み込めない
生成AIが出したJSONをそのままシステムに貼ったら構文エラー。どこが悪いのか、行と列で一発表示します。
場面 02
チャットからコピーしたら壊れた
Slackやメール、Wordから貼ったJSONの引用符が勝手に丸まっていた——というよくある事故を、診断してから安全に修復します。
場面 03
大きなIDを含むログ・APIレスポンス
20桁前後のSnowflake IDやSNSの投稿IDが、整形しても1桁も変わらないことを確認できます。
解説
コピペでJSONが壊れる、いちばん多い原因。
JSONの仕様では、文字列を囲む引用符は半角の「"」だけが許されています。ところがWord・PowerPoint・多くのチャットアプリには「スマート引用符(タイポグラフィ引用符)」という自動変換機能があり、ふつうに打った " や ' を、見た目のきれいな丸い引用符(“ ” ‘ ’)に勝手に置き換えます。この変換された引用符はJSONの構文としては無効な文字で、貼り付けた瞬間にパースが壊れます。
同じように、日本語入力(IME)のクセで、半角スペースのつもりが全角スペース(U+3000)になっていることもあります。JSONの構文上の空白は半角だけが対象なので、文字列の外にある全角スペースはエラーの原因になります(文字列の中にある全角スペースは値の一部なので問題ありません。このツールもそこを区別して診断します)。
ChatGPTなどの生成AIが、会話の流れで気を利かせて // 補足コメント を混ぜたり、配列の最後に余分なカンマを残したりすることもあります(JavaScriptのオブジェクト記法の感覚に引っ張られるためと見られます)。どちらも標準のJSONでは無効です。
解説
大きな数値を1桁も変えない設計。
多くのJSON整形ツールは、内部で JSON.parse してから JSON.stringify で書き戻す実装になっています。JavaScriptの数値(Number型)はIEEE754倍精度浮動小数点数で、安全に扱える整数の範囲は最大16桁(253−1 = 9,007,199,254,740,991)までです。Snowflake ID・SNSの投稿ID・メッセージIDなど20桁前後のIDはこの範囲を超えるため、JSON.parse を通した時点で末尾の桁が丸められ、元とは違う数値になってしまいます。
例えば {"id": 12345678901234567890} を一般的な整形ツールに通すと、末尾が丸められて別の数値に変わってしまうことがあります。このツールは数値を一度もNumber型に変換せず、ソースの生の桁をそのまま構文木(AST)に保持して書き戻すため、何桁のIDでも整形・圧縮の前後で1文字も変わりません(小数の末尾ゼロ「1.10」や指数表記「1e3」も同様に、書いたままの表記を保ちます)。
このツールにできないこと
- JSON5・JSONCの完全対応はしていません。コメント(
///* */)や末尾カンマなど「安全に取り除けるもの」だけを検出・修復します。裸のキー(引用符なし)の自動修復や、16進数リテラルなどJSON5固有の記法には対応していません(引用符の付け忘れは検出のみで、どこに付けるべきか自体は曖昧なため自動修正しません)。 - スキーマ検証はしません。型が正しいか・必須の項目が揃っているかは見ません。あくまで「構文として正しいJSONかどうか」の診断に特化しています。
- 数百MBクラスの巨大なJSONは、ブラウザのメモリや処理速度の都合で重くなる、または動作しないことがあります。
このツールについて
「ChatGPTが出したJSONが読み込めない」「チャットやWordからコピーしたら壊れた」——そんなJSONを貼り付けると、どの行・どの文字が原因かを日本語で示し、直せるところは「まとめて修復」でその場に直します。整形・圧縮も、20桁のIDのような大きな数値を1桁も変えずに処理します。入力はこの端末の中だけで処理され、外部には送信されません。
壊れたJSONは何行目の何が悪いかを日本語で表示。スマート引用符・全角スペース・末尾カンマなどコピペ起因の破損はワンクリック修復。整形・圧縮しても20桁のIDを丸めない設計。送信ゼロ。
主な機能
- 構文エラーの行・列と原因を日本語で表示(自前パーサ)
- スマート引用符・全角スペース・末尾カンマ・コメント・シングルクォートをワンクリック修復
- 文字列の中身は修復で変更しない(安全な置換のみ)
- 整形(インデント2/4/タブ)・圧縮・キーの並べ替え
- 15桁を超えるIDや 1.10 のような数値表記を丸めない(raw保持)
- ChatGPTの出力やコピペで壊れたJSONの復旧に・送信ゼロ
よくある質問
Q. JSONのエラーが「どこ」にあるか知りたいのですが、行と列は表示されますか?
A. はい。貼り付けると自前のパーサが構文をチェックし、「n行m列: 原因」の形で**日本語**表示します。ブラウザのJSONエンジンのエラーメッセージ(Unexpected token など)には頼らず、このツール自身が位置を特定しています。
Q. なぜコピペするとJSONが壊れるのですか?
A. 最も多い原因は、WordやChatGPTの回答画面などが持つ**スマート引用符の自動変換**です。ふつうに打った半角の " や ' が、見た目のきれいな “ ” ‘ ’ に置き換わり、JSONの構文として無効になります。全角スペースの混入や、生成AIが混ぜがちなコメント・末尾カンマも原因になります。このツールはこれらを診断し、まとめて修復できます。
Q. 大きい数値のID(20桁など)が変わってしまいませんか?
A. 変わりません。一般的な整形ツールは JSON.parse してから書き戻すため、**16桁を超えるID**(Snowflake IDなど)は末尾が丸められることがあります。このツールは数値を一度もNumber型に変換せず、元の桁をそのまま保持するので、20桁のIDでも整形・圧縮の前後で1文字も変わりません。
Q. 入力したJSONはどこかに送信されますか?
A. 送信されません。構文チェック・診断・修復・整形・圧縮はすべてこの端末(ブラウザ)内で処理され、外部通信は一切発生しません(送信ゼロ)。ブラウザの開発者ツールの「ネットワーク」タブを開いたまま試していただければ、通信が起きていないことを直接確認できます。
Q. コメント付きのJSON(JSON5・JSONC)も直せますか?
A. 一部対応しています。「//」や「/* */」のコメント、末尾カンマ、シングルクォートなど**安全に取り除けるもの**は検出・修復できますが、JSON5・JSONCの完全対応やスキーマ検証は行っていません。裸のキー(引用符なし)は検出のみで、どこに引用符を付けるべきかが曖昧なため自動修正はしません。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。