在使用 jQuery 的 parseJSON 方法時,我們有時會遇到“無效字符”的錯誤提示。這個錯誤提示是因為 JSON 字符串中包含了非法的字符,導致解析失敗。針對這種情況,我們可以采取以下措施。
var jsonStr = '{"name":"張三","age":18}'; try { var jsonObj = $.parseJSON(jsonStr); console.log(jsonObj.name); } catch (e) { console.log("解析 JSON 字符串失敗:" + e); }
在以上代碼中,我們嘗試解析一個 JSON 字符串,其中包含了一個非法的逗號“,”。為了避免解析失敗導致程序異常中斷,我們在解析過程中加入了 try-catch 語句。當解析失敗時,catch 中的代碼將被執行,我們可以在控制臺中輸出失敗信息。
除了在代碼中加入 try-catch 語句,還有一種解決方法是在前端和后端之間約定好一個 JSON 編碼和解碼規則,避免出現非法字符。如果 JSON 字符串中包含了我們無法處理的非法字符,我們也可以使用正則表達式將其過濾掉。
var jsonStr = '{"name":"張三","age":18}'; jsonStr = jsonStr.replace(/,/g, ","); var jsonObj = $.parseJSON(jsonStr); console.log(jsonObj.name);
以上代碼中,我們使用 replace 方法將所有的中文逗號替換成英文逗號。這樣做的前提是,我們已經明確知道 JSON 字符串中只有中文逗號是非法的字符。這種方式雖然簡單,但也存在風險,不建議在業務中大量使用。
上一篇vue登錄登出功能