Javascript无法访问REST API返回JSON响应内变量问题求助
解决方案
- 首先修正变量声明语法错误
你当前的变量写法不符合JS规范,var关键字后面必须跟自定义的变量名,正确写法如下:
// 声明变量eventName存储name字段值 const eventName = data._embedded.events[0].name // 用var的写法如下 // var eventName = data._embedded.events[0].name
- 确认你已经将API返回的响应字符串转为JS对象
绝大多数请求库返回的原始响应是字符串格式,不能直接读取属性,必须先做JSON解析:
如果你用的是fetchAPI,处理逻辑示例:
fetch('你的API请求地址') .then(res => res.json()) // 这一步是将响应转为JS对象,不能缺 .then(data => { const eventName = data._embedded.events[0].name // 后续你要使用eventName的逻辑都要写在这个回调里,或者通过函数传递出去 console.log(eventName) // 测试输出,确认是否能拿到值 })
如果你用的是axios,默认会自动帮你做JSON解析,你可以通过console.log(typeof data)先确认data的类型,如果输出是string就需要手动转一次:
const parsedData = JSON.parse(data) const eventName = parsedData._embedded.events[0].name
- 关于JSON结构的错误说法澄清
你当前JSON里events字段对应的值是数组类型,用[是完全正确的,不需要改成{,你贴的JSON片段只是没写完,补全闭合后是合法结构。 - 排查小技巧
你可以在访问字段前先打印完整的data对象,确认结构是否和你预期一致:console.log(data),打开浏览器控制台就能看到完整的结构层级,避免写错属性名或者层级。
内容的提问来源于stack exchange,提问作者LDP97
相关产品推荐
相关产品推荐

