JSON整形・検証ツール
JSONデータを見やすく整形・圧縮。構文エラーの検出にも対応。
JSONとは
JSON(JavaScript Object Notation)は、データを構造的に表現するための軽量なテキストフォーマットです。もともとはJavaScriptのオブジェクト記法に由来しますが、現在ではプログラミング言語を問わず、Web API・設定ファイル・データ交換など幅広い場面で利用されています。
JSONは「キーと値のペア(オブジェクト)」と「値の順序付きリスト(配列)」を基本構造とし、人間にも機械にも読みやすい点が特徴です。XMLに比べて記述量が少なく、パースも高速なため、現在のWeb開発ではデファクトスタンダードとなっています。
JSON整形が必要な場面
JSONデータは1行に圧縮された状態で扱われることが多く、そのままでは人間が読み解くのが困難です。以下のような場面で整形(フォーマット)が役立ちます。
API開発・デバッグ
REST APIやGraphQLのレスポンスはJSON形式で返されることがほとんどです。APIから返されたデータの構造を確認するとき、整形されたJSONなら階層構造が一目でわかり、バグの原因特定が容易になります。
設定ファイルの編集
package.json、tsconfig.json、.eslintrc.jsonなど、多くの開発ツールがJSON形式の設定ファイルを使用します。設定値を追加・変更する際、整形された状態であれば既存の設定を見落とすリスクが減ります。
データの確認・共有
データベースからエクスポートしたJSONデータの内容確認、チームメンバーへのデータ共有、ドキュメントへのサンプルデータ掲載など、整形されたJSONは可読性を大幅に向上させます。
JSONの基本ルール
JSONは厳密な構文ルールを持っています。JavaScriptオブジェクトよりも制約が厳しいため、以下のルールを守る必要があります。
- 文字列のクォート: キーと文字列値は必ずダブルクォート(")で囲む。シングルクォート(')は使用不可。
- 末尾カンマ(trailing comma): 配列やオブジェクトの最後の要素の後にカンマを付けてはならない。
- コメント: JSON仕様にコメント構文は存在しない。
//や/* */は使用不可。 - データ型: 文字列・数値・真偽値(true/false)・null・オブジェクト・配列の6種類のみ。undefinedや関数は不可。
- 数値: 先頭のゼロ(例: 0123)は不可。16進数(0xFF)やNaN、Infinityも使用不可。
- トップレベル: JSONの最上位はオブジェクト
{}または配列[]、もしくは単一の値(文字列・数値など)。
よくあるJSONエラーと対処法
JSONの構文エラーは小さなミスが原因であることがほとんどです。以下に代表的なエラーパターンと対処法をまとめます。
- 「Unexpected token」: シングルクォートを使用している、または不正な文字が含まれている。ダブルクォートに統一し、不要な文字を削除してください。
- 「Unexpected end of JSON」: 閉じ括弧(
}や])が不足している。対応する括弧を確認してください。 - 「Expected double-quoted property name」: キー名がクォートで囲まれていない。すべてのキーをダブルクォートで囲んでください。
- 「Trailing comma」: 最後の要素の後にカンマが付いている。末尾カンマを削除してください。
- 「Unexpected token } / ]」: 空のカンマ(連続カンマ)がある可能性。不要なカンマを削除してください。
本ツールでは、エラー発生時にエラーメッセージと位置情報を表示し、修正箇所の特定をサポートします。
よくある質問
Q. JSONとJavaScriptオブジェクトの違いは?
JavaScriptオブジェクトではキーにクォートが不要で、末尾カンマやコメントも許容されますが、JSONではキーを必ずダブルクォートで囲み、末尾カンマやコメントは使用できません。JSONはJavaScriptのサブセットではなく、独立したデータフォーマット仕様(RFC 8259)です。
Q. シングルクォートは使えますか?
いいえ。JSON仕様ではシングルクォート(')は使用できません。文字列やキー名はすべてダブルクォート(")で囲む必要があります。シングルクォートを使用するとパースエラーになります。
Q. コメントは書けますか?
標準のJSON仕様にはコメント構文がありません。設定ファイルでコメントが必要な場合は、JSON5やJSONC(JSON with Comments)形式の使用を検討してください。VS Codeの設定ファイル(settings.json)などはJSONC形式をサポートしています。
Q. 最大サイズの制限はありますか?
本ツールではブラウザ上で処理を行うため、JSON仕様上のサイズ制限はありませんが、非常に大きなデータ(数十MB以上)ではブラウザの動作が遅くなる場合があります。通常の用途(数MB以内)であれば問題なく動作します。