You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSON.parse解析含转义单引号字符串报错,该如何解决?

问题根源

你额外加的全局转义逻辑破坏了JSON的标准格式:JSON规范中仅要求转义双引号、反斜杠、控制字符(换行、制表符等),单引号不需要转义。你通过replace(/[\/\(\)\']/g, "\\$&")给所有单引号前增加了反斜杠,生成的OG\'S RIDES属于JSON非法转义序列,直接触发解析报错。


解决方案1:仅做JS字符串字面量转义(推荐,性能更高)

发送端处理

只针对要嵌入单引号字符串的内容转义单引号,不修改JSON本身的合法结构:

// 生成标准JSON
const jsonOrders = JSON.stringify(orders);
// 仅转义单引号,避免提前闭合evalScript里的参数单引号
const escapedForEval = jsonOrders.replace(/'/g, "\\'");
// 传递参数
csiRun.evalScript(`setupSwitchBlade('${escapedForEval}', '${layoutFile}', '${orderDate}', '${productTag}', 1)`);

接收端处理

直接解析即可,不需要额外操作:

var orderParsed = JSON.parse(orders);

解决方案2:编码兜底(兼容特殊字符更多的场景)

如果你的数据里还包含换行、反斜杠等其他容易触发转义冲突的字符,可以用编码解码的方式彻底规避冲突:

发送端处理

const jsonOrders = JSON.stringify(orders);
// 全局编码所有特殊字符
const encodedOrders = encodeURIComponent(jsonOrders);
csiRun.evalScript(`setupSwitchBlade('${encodedOrders}', '${layoutFile}', '${orderDate}', '${productTag}', 1)`);

接收端处理

先解码再解析:

var orderParsed = JSON.parse(decodeURIComponent(orders));

内容的提问来源于stack exchange,提问作者FabricioG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:54:07