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

无法解析API响应JSON,获取timestamp字段返回undefined怎么解决

问题成因
  • 冗余的序列化/反序列化操作:如果jobDetails本身已经是解析完成的JavaScript对象,JSON.stringify()将其转为JSON字符串后再用JSON.parse()转回对象的操作完全没有必要,若jobDetails是未处理的非标准JSON字符串,该操作还会导致数据结构异常,无法取到对应字段。
  • 非标准JSON格式问题:你给出的响应示例使用单引号包裹键名与字符串值,而标准JSON规范强制要求使用双引号,直接对这类字符串执行JSON解析会抛出语法错误,导致解析结果异常。
  • 数据层级判断错误:若API返回结果存在外层包裹(比如多数接口会把实际业务数据放在data属性下),直接从根层级取timestamp自然会返回undefined。
解决方案
  • 先确认jobDetails的实际类型,执行console.log(typeof jobDetails, jobDetails)判断它是字符串类型还是已经解析完成的对象类型。
  • 如果是单引号包裹的非标准JSON字符串,先替换单引号为双引号再解析:
const parsedData = JSON.parse(jobDetails.replace(/'/g, '"'))
console.log("timestamp", parsedData.timestamp)
  • 如果已经是解析完成的对象,直接取值即可,不需要多余的序列化反序列化操作:
console.log("timestamp", jobDetails.timestamp)
  • 若API返回数据存在外层包裹,先找到业务数据所在层级再取值,比如业务数据在data字段下则写为jobDetails.data.timestamp。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:54:01