在使用 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 字符串中只有中文逗号是非法的字符。这种方式虽然简单,但也存在风险,不建议在业务中大量使用。