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

如何解决JSON解析时SyntaxError: Unexpected token ^ in JSON at position错误

根因说明
  • 本身属于JSON标准支持的普通字符,不会直接触发解析错误。你遇到的报错本质是**动态接收的原始字符串中,字符的相邻位置存在未正确转义的非法序列/不可见控制字符**。console.log输出时会自动过滤不可见字符、转换非法转义的展示形式,因此你手动复制的内容已经是处理后的合法JSON字符串,所以硬编码解析正常。
  • 最常见的触发原因是Python内核输出时,字符串中混入了单独的反斜杠在^前面,形成\^的非法转义组合,JSON标准仅支持\"、\\、\/、\b、\f、\n、\r、\t、\uXXXX这几类转义序列,其他带反斜杠的组合都会被判定为非法字符。
解决方案

方案1:字符串清洗后解析(无安全风险,优先推荐)

先对原始字符串做非法内容清洗,再执行JSON.parse,适配绝大多数场景:

function cleanAndParseJson(rawStr) {
  // 第一步:移除所有JSON不支持的ASCII控制字符
  const cleanedControl = rawStr.replace(/[\x00-\x1F\x7F-\x9F]/g, char => {
    // 保留JSON允许的合法空白字符
    if (['\t', '\n', '\r'].includes(char)) return char;
    return '';
  });
  // 第二步:删除所有非标准的转义反斜杠
  const cleanedEscape = cleanedControl.replace(/\\(?!["\\/bfnrt]|u[0-9a-fA-F]{4})/g, '');
  return JSON.parse(cleanedEscape);
}

// 调用示例
const result = cleanAndParseJson(Kernel_inputs_as_string);

方案2:宽松解析兜底(仅内部可信场景使用)

如果清洗后仍有解析问题,可使用容错性更高的解析方式兜底,该方式可以兼容绝大多数非标准JSON格式,但存在代码注入风险,仅可在数据来源完全可控的场景下使用:

function looseParseJson(rawStr) {
  return new Function(`return ${rawStr}`)();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:06:04