JSONとは何か、そしてなぜ壊れるのか

JSON(JavaScript Object Notation)は、システム間で情報を保存および交換するために使用される軽量なデータ形式です。厳密な構文ルールに従います:文字列はダブルクォートを使用する必要があり、オブジェクトは適切な中括弧が必要で、配列は角括弧が必要であり、末尾のカンマは禁止されています。1文字の誤った配置でも、ドキュメント全体が無効になる可能性があります。

JSONは、ログ、チャットメッセージ、またはコードエディタからコピーされた場合に一般的に壊れます。手動編集では、クォートの欠落、エスケープされていない文字、または括弧の不一致などのエラーが発生することがよくあります。APIは時々不正な形式のレスポンスを返し、設定ファイルは手動編集中に破損することがあります。

ツール説明

このJSON修復ツールは、壊れた、または不正な形式のJSONドキュメントを自動的に修正します。入力を分析し、構文エラーを特定し、元のデータ構造と値を保持しながら有効なJSONを再構築します。このツールは、手動で修正する必要があるその他の一般的な問題に対応しています。

キーの周りにクォートがない場合:

{name: "John", age: 30}

修復後:

{ "name": "John", "age": 30 }

末尾のカンマ:

{ "items": ["apple", "banana", "orange"] }

修復後:

{ "items": ["apple", "banana", "orange"] }

ダブルクォートの代わりにシングルクォート:

{'status': 'active', 'count': 5}

修復後:

{ "status": "active", "count": 5 }

クォートなしの文字列値:

{"message": Hello World}

修復後:

{ "message": "Hello World" }

閉じ括弧がない場合:

{"data": [1, 2, 3}

修復後:

{ "data": [1, 2, 3] }

機能

  • キーと文字列値の周りに自動的にクォートを追加
  • 配列とオブジェクトから末尾のカンマを削除
  • シングルクォートをダブルクォートに変換
  • 不一致または欠落している括弧と中括弧を修復
  • プリティプリントまたはミニ化出力でのオプションフォーマット

動作方法

修復アルゴリズムは入力を1文字ずつ解析し、有効なJSON構造を構築します。無効な構文に遭遇すると、一般的なJSONの誤りに基づいて修正ルールを適用します。クォートの欠落はコンテキストから推測され、一致しない括弧は適切な位置で閉じられ、無効な文字は処理またはエスケープされます。結果は、任意のJSONパーサーで解析できる構文的に正しいJSONです。

ユースケース

  • APIレスポンスのデバッグ:処理前にAPIまたはWebサービスから返された不正な形式のJSONを修正
  • ログデータのクリーニング:アプリケーションログまたはコンソール出力から抽出されたJSONフラグメントを修復
  • 設定ファイルの修正:構文エラーが蓄積した手動編集のJSON設定を修正

制限事項

  • JSONに類似していない完全に構造化されていないテキストは修復できません
  • あいまいな入力を意図したものと異なる方法で解釈する可能性があります(常に出力を確認してください)
  • セマンティックエラー(間違ったデータ型、不正な値)は検出または修正されません