JSONを修復して整形
末尾カンマ、コメント、シングルクォート、コードフェンスなどを除去・変換してJSONとして再整形します。
使い方とユースケース
AI出力やログからコピーしたJSON断片を、機械処理しやすい正規JSONへ戻すための補助ツールです。
- 修復は決定論的なルールベースです。修復後の内容が意図どおりかは必ず確認してください。
- 修復できない構造は、エラー理由と途中までの修復候補を表示します。
JSON修復は、ChatGPTなどのAI出力やログからコピーした「壊れたJSON」を、ルールベースの決定論的な処理で正規のJSONへ直すツールです。コードフェンス(```で囲まれた部分)の除去、//や/* */コメントの削除、シングルクォート文字列のダブルクォート化、クォートなしキーの補完、undefined/NaNのnull置換、末尾カンマの除去まで対応します。修復後はJSON.parseで検証し、修復理由のログと差分サマリも表示します。
使い方・サンプル・結果例・注意点
使い方
壊れたJSONをテキストエリアに貼り付け、「修復」ボタンを押すと、修復後のJSONと修復理由、差分が表示されます。
サンプル入力
// AI出力からコピーしたJSON断片 { name: '菊丸ツゥルズ', enabled: true, items: [1, 2, 3,], }
結果例
このサンプルでは、まず行頭の//コメントが除去され、シングルクォートの'菊丸ツゥルズ'がダブルクォートに変換され、クォートなしキーのname・enabled・itemsがダブルクォートで囲まれ、配列末尾の余分なカンマ(3,]の部分)が除去されます。結果として{"name": "菊丸ツゥルズ", "enabled": true, "items": [1, 2, 3]}という整形済みJSONが生成され、「修復理由」欄に適用した修復ルールの一覧、「差分サマリ」欄に変更前後の行差分が表示されます。
注意点
修復は固定ルールに基づく決定論的な処理であり、文脈を読んで意味を補うものではありません。修復しても最終的にJSON.parseでパースできない場合は、エラーメッセージと途中まで修復したテキスト・差分が表示されます。複雑なネストの欠落や、構造そのものが壊れている場合(括弧の数が合わないなど)は自動修復できません。入力は100,000文字までです。修復後の内容が意図どおりかは必ず目視で確認してください。
こんなときに使えます
- AIエージェント開発者が、LLMが出力したコードフェンス付き・末尾カンマ付きのJSON設定をパース可能な形に直してから自分のプログラムに渡す
- Webエンジニアが、ブラウザの開発者ツールやログファイルからコピーしたJavaScriptオブジェクトリテラル(クォートなしキーやシングルクォート)を正規JSONに変換する
- QAエンジニアが、テストデータ用JSONに混入したコメントや末尾カンマを一括で除去し、CIのJSONバリデーションに通す
- ノーコードツール利用者が、外部APIのレスポンス例やドキュメントに書かれた非標準なJSONサンプルを、実際に使えるJSONに整形する
よくある質問
どんな種類の壊れたJSONを修復できますか?
コードフェンス(```json ... ```)、//や/* */のコメント、シングルクォート文字列、クォートなしのキー名、undefined/NaNの値、配列やオブジェクト末尾の余分なカンマに対応しています。
修復しても直らない場合はどうなりますか?
修復ルールを適用した後の文字列でJSON.parseを試み、失敗した場合はエラー内容と、修復ルール適用後の途中結果・差分が表示されます。構造自体が大きく壊れている場合は手動修正が必要です。
コメントが入っていると消えてしまいますが、消したくない場合は?
JSON仕様にコメントは含まれないため、JSONとしてパース可能にするには必ず除去されます。コメント内容を残したい場合は、修復前にコメント部分をメモしておいてください。
修復によって元の値が変わってしまうことはありますか?
シングルクォート文字列のダブルクォート変換やundefined/NaNのnull化など、構造を保ったままの安全な変換のみを行います。ただし値の意味が変わる変換(NaN→nullなど)もあるため、差分サマリで必ず確認してください。
差分サマリは何を比較していますか?
入力したテキストと修復後のJSONを行単位で比較し、変更があった行を-(変更前)と+(変更後)で最大80行まで表示します。