跳到主要內容

← 返回部落格

常見的 JSON 錯誤與修正方法

幾乎每個「Unexpected token in JSON」錯誤,都來自同一份很短的失誤清單。以下逐一列出與修法。(不熟這格式?先看 JSON 是什麼。)

1. 多餘的逗號

JSON 不允許最後一項後面還有逗號:

{ "a": 1, "b": 2, }   ← 無效
{ "a": 1, "b": 2 }    ← 有效

2. 單引號

字串與屬性名必須用雙引號:

{ 'name': 'Ann' }   ← 無效
{ "name": "Ann" }   ← 有效

3. 屬性名沒加引號

不像 JavaScript 物件,JSON 的鍵一定要加引號:

{ name: "Ann" }     ← 無效
{ "name": "Ann" }   ← 有效

4. 註解

JSON 不能有註解。解析前把 ///* */ 移除。

5. 括號錯誤或缺漏

每個 { 都要有 }、每個 [ 都要有 ]。常見的是括號混用,或忘了把多筆資料用陣列 [ … ] 包起來。

6. 非數值的值

NaNInfinityundefined 都不是合法 JSON。請改用數字、字串或 null

最快的修法:驗證

與其用肉眼找,不如把 JSON 貼進會指出錯誤位置的驗證工具:

修好上面六個失誤,絕大多數「JSON 無效」的問題就會消失——全程在你的瀏覽器本機執行,連機敏資料也不外流。