JSON検証:JSONデータを検証・修正する方法
JSON(JavaScript Object Notation)は、ウェブ上で最も広く使用されているデータ交換形式です。APIレスポンスから設定ファイルまで、JSONはいたるところで使用されています。しかし、JSONは構文に関して厳格です—1つのカンマの位置間違いや引用符の欠落が、パーサー全体をクラッシュさせる可能性があります。このガイドでは、JSON検証、一般的なエラー、およびその修正方法について説明します。
JSON検証が重要な理由
無効なJSONはさまざまな問題を引き起こす可能性があります:
- API障害:無効なJSONを返すサーバーは、クライアント側のパーサーをクラッシュさせ、アプリケーションを壊します。
- 設定エラー:設定ファイル(
package.json、composer.json、tsconfig.jsonなど)のJSONが壊れていると、ツールが実行できなくなることがあります。 - データ破損:JSONエラーを含むデータのインポートやエクスポートは、警告なしのデータ損失につながる可能性があります。
- デバッグの手間:適切なツールなしで大きなファイル内の無効なJSONを追跡するのは時間がかかり、エラーが発生しやすくなります。
本番環境で使用する前にJSONを検証することで、時間を節約しバグを防ぐことができます。
JSONを検証する方法
オンラインJSONバリデーター
JSONを検証する最も簡単な方法は、オンラインツールを使用することです。Help2CodeのJSON Validator & Repairツールは、JSON構文をリアルタイムでチェックし、問題の場所を直接示す詳細なエラーメッセージを提供します。
機能:
- 入力中のリアルタイム検証
- 各エラーの行番号と列番号
- わかりやすいエラーの説明
- 一般的な問題の自動修正提案
- 出力の最小化または整形オプション
- JSONスキーマ検証のサポート
コードでJSONを検証
JavaScript(ブラウザ / Node.js):
try {
const data = JSON.parse(jsonString);
console.log('有効なJSON:', data);
} catch (error) {
console.error('無効なJSON:', error.message);
}
Python:
import json
def validate_json(data):
try:
json.loads(data)
return True, None
except json.JSONDecodeError as e:
return False, str(e)
is_valid, error = validate_json('{"name": "Alice"}')
print(error if not is_valid else "有効です!")
PHP:
function validateJson($string) {
json_decode($string);
return json_last_error() === JSON_ERROR_NONE;
}
コマンドライン(jq):
# JSONファイルを検証(有効な場合は終了コード0)
jq . file.json > /dev/null && echo "有効" || echo "無効"
# 特定のエラーを表示
jq . file.json 2>&1
無効なJSONを修正する方法
一部のJSONエラーは自動的に修正できます。一般的な修正戦略は次のとおりです:
- 末尾のカンマを削除:閉じ括弧または中括弧の前のカンマを削除します。
- 欠落している引用符を追加:引用符のないキーと単一引用符の文字列を自動的に二重引用符で囲みます。
- エスケープ文字を修正:誤ってエスケープされた制御文字を修正します。
- コメントを削除:JavaScript形式のコメント(
//と/* */)を削除します。 - 単一引用符を二重引用符に変換:すべての単一引用符の文字列を二重引用符の文字列に置き換えます。
- 末尾のテキストを削除:最後の閉じ括弧または中括弧以降のテキストを削除します。
JSON Validator & Repairツールはこれらの修正を自動的に適用し、元のJSONとともに修正されたJSONを表示します。
JSONスキーマ検証
構文検証を超えて、JSONスキーマはJSONが従うべき構造とデータ型を定義します。JSONスキーマ自体がJSONドキュメントであり、以下を記述します:
- 必須フィールドとオプションフィールド
- データ型(文字列、数値、ブール値、配列、オブジェクト、null)
- 文字列パターンと形式(メール、日付、URI)
- 数値の最小値と最大値
- 配列の長さの制約
Help2CodeのJSON Schema Validatorを使用すると、スキーマに対してJSONデータを検証して構造的な正確性を確保できます。
まとめ
JSON検証は、最新のウェブ技術を扱うすべての開発者にとって不可欠なスキルです。構文規則、一般的なエラー、利用可能なツールを理解することで、問題を早期に発見して修正できます。JSON Validator & Repairツールを使用してJSONを即座にチェックし、アプリケーションで外部データを信頼する前に常に検証してください。