最も多いJSONのエラー5選とその解決方法
はじめに:なぜJSONエラーは頻発するのか
JSONはAPI、設定ファイル、データ交換などで最も人気のあるデータ形式の一つです。しかし、ほんのわずかなミスでもアプリが動かなくなったり、連携が止まったり、デバッグが困難になります。ここでは、実例とともに最も多いJSONエラー5つとその対処法をご紹介します。
1. 末尾のカンマの誤り
JSONでは、オブジェクトや配列の最後のアイテムの後にカンマを付けてはいけません。手作業で編集すると特に頻発するミスです。
Before:
{
"name": "Alice",
"age": 30,
}
After:
{
"name": "Alice",
"age": 30
}
ヒント:多くのコードエディタや当社のオンラインJSONツールは、末尾のカンマをハイライト表示したり自動修正します。
2. シングルクオートとダブルクオートの違い
JSONではすべてのキーと文字列値はダブルクオートで囲む必要があります。シングルクオートは無効です。
Before:
{
'name': 'Bob'
}
After:
{
"name": "Bob"
}
プログラミング言語でシングルクオートが使えても、JSONの文法はもっと厳しいので使わないでください。
3. エスケープされていない文字
文字列内の改行、タブ、ダブルクオートなど特定の文字はバックスラッシュで正しくエスケープしなければなりません。
Before:
{
"note": "This will break: "hello""
}
After:
{
"note": "This will work: \"hello\""
}
「unexpected token」や「unterminated string」のエラーが出たら、エスケープ漏れを疑いましょう。
4. 括弧や波括弧の不足・過剰
開き括弧・波括弧には対応する閉じ括弧・波括弧が必ず必要です。不足や余分な括弧は無効なJSONエラーの原因となります。
Before:
{
"name": "Eve",
"items": [1, 2, 3
}
After:
{
"name": "Eve",
"items": [1, 2, 3]
}
オンラインのJSONバリデーターを活用すると、括弧のミスを即座に発見できます。
5. データ型のミス
数字や真偽値、nullはクオートで囲んではいけません。たとえば42は数字ですが、"42"は文字列です。
- "true"(文字列)は true(真偽値)とは異なります
- "null"(文字列)は null(値)とは異なります
- "42"(文字列)は 42(数字)とは異なります
Before:
{
"age": "42",
"active": "true"
}
After:
{
"age": 42,
"active": true
}
当ツールの活用法
JSONをバリデーターや修復ツールに貼り付けるだけで、これらのエラーを即座に検出・修正可能です。問題箇所を詳細に指摘し、多くの一般的エラーは自動修正も提案します。