Javascript JSON 單雙引號議題
Nov 19, 2020
最近研究在 Javascript 的 JSON 套件(來金融業突然間甚麼工具都要會...),出現以下錯誤訊息:
Uncaught SyntaxError: Unexpected token ‘ in JSON at position 1
程式碼如下(oJS 跟 obj 皆是 string):
oJS.forEach((obj) => {
let tmp = JSON.parse(obj[k]);
}
後來才發現是輸入 data 中出現單引號的問題:
{‘bef’:’N’,’aft’:’Y’}
根據這邊的解釋,發現 Javascript 的 JSON SPEC 只接受雙引號(“”)當作 delimit,所以先將引號做轉換即可解決這個問題:
oJS.forEach((obj) => {
obj[k] = obj[k].replace(/'/g, '"');
let tmp = JSON.parse(obj[k]);
}