ReactJS调用JSON.parse报Unexpected token ' in JSON错误如何解决?
报错触发原因
标准JSON格式有严格的语法要求,其中键名和字符串类型的值必须使用双引号"包裹,你传入的待解析字符串里全部使用单引号'包裹内容,不符合JSON语法规范,因此JSON.parse()方法在解析到位置1的单引号时直接抛出语法错误。
修复方案
你可以根据实际场景选择以下任意一种方案实现需求:
- 方案1:替换单引号为双引号后解析
适合字符串内容本身不含单引号的场景,实现最简单:let code = "{'store':'AAAAAA', 'online':'BBBBB'}"; // 全局替换所有单引号为符合JSON规范的双引号 let standardJsonStr = code.replaceAll("'", '"'); let actualCode = JSON.parse(standardJsonStr); // 可正常调用属性,输出AAAAAA console.log(actualCode.store); - 方案2:使用new Function转换
适合内容本身可能包含单引号的场景,兼容性更好:let code = "{'store':'AAAAAA', 'online':'BBBBB'}"; // 通过函数构造器返回对象,可兼容单引号写法的对象字符串 let actualCode = (new Function(`return ${code}`))(); // 可正常调用属性,输出AAAAAA console.log(actualCode.store); - 方案3:从源头调整字符串生成规则
如果可以修改该字符串的生成逻辑,直接生成符合标准的JSON字符串(所有键和字符串用双引号包裹),是最稳妥的解决方案,可避免后续解析出现各类格式问题。
内容的提问来源于stack exchange,提问作者user979331
相关产品推荐
相关产品推荐

