Javascript JSON 單雙引號議題

starzodiac
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]);
}

--

--

No responses yet