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

使用JSON.parse()解析嵌套JSON字符串遇SyntaxError错误求助

解决JSON.parse()的"Unexpected token u"错误及嵌套JSON解析问题

首先,咱们拆解你遇到的两个核心问题:烦人的Unexpected token u报错,以及嵌套JSON字符串的解析需求。

为什么会出现"Unexpected token u"错误?

这个错误90%以上的概率是因为你传给JSON.parse()的参数是undefined,而非有效的JSON字符串。常见诱因包括:

  • 服务器数据还没返回就提前调用了解析(比如异步请求还未完成)
  • 接口请求失败,返回了undefined或null
  • 误将未定义的变量传入了JSON.parse()

你可以先在解析前加个console.log,确认要解析的内容是完整的JSON字符串,而不是undefined。

正确解析嵌套JSON的分步方案

你的服务器返回数据本身是合法JSON,但其中的data字段是转义后的JSON字符串,所以需要分两次解析:

  1. 第一步:解析外层完整响应
    先确保拿到服务器返回的完整字符串,再解析整个结构:
// 示例:假设你从服务器获取到的完整字符串如下
const serverResponse = '{ "StatusCode": 0, "StatusMessage": "OK", "StatusDescription": [ { "id": "1", "datetime": "2018-04-13", "data":"{ \\"id_data\\": \\"1S1S2ED333\\", \\"model\\": \\"02S\\", \\"serial_data\\": \\"123456\\" }" } ] }';

// 解析外层JSON结构
const parsedOuterData = JSON.parse(serverResponse);
  1. 第二步:解析嵌套的data字段
    此时parsedOuterData.StatusDescription[0].data就是转义后的JSON字符串,再次调用JSON.parse()即可:
const nestedParsedData = JSON.parse(parsedOuterData.StatusDescription[0].data);
console.log(nestedParsedData);
// 输出结果:{ id_data: "1S1S2ED333", model: "02S", serial_data: "123456" }

更稳健的写法(含异常处理)

为避免数据异常导致报错,建议加入空值判断和try-catch:

try {
  // 替换为你实际获取数据的方式(如fetch/axios)
  const serverResponse = await fetch('/your-api-url').then(res => res.text());
  
  if (!serverResponse) {
    throw new Error('服务器返回空数据');
  }

  const parsedOuterData = JSON.parse(serverResponse);
  
  // 确保嵌套数据字段存在且有效
  if (!parsedOuterData.StatusDescription || parsedOuterData.StatusDescription.length === 0 || !parsedOuterData.StatusDescription[0].data) {
    throw new Error('嵌套数据不存在或格式异常');
  }

  const nestedParsedData = JSON.parse(parsedOuterData.StatusDescription[0].data);
  console.log('解析成功的嵌套数据:', nestedParsedData);
} catch (error) {
  console.error('解析出错:', error.message);
}

针对你的场景再排查

回到你的报错,优先检查第一次调用JSON.parse()的参数是否为undefined。比如如果还没完成外层数据解析,就直接去解析data字段,会导致传入undefined,触发"Unexpected token u"错误。先确保外层解析成功,再处理嵌套部分就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:30:54