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

如何正确访问并查询API返回的对象数组中的对象属性值?

解决方案

resp[i].name返回undefined的问题通常由以下几种常见原因导致,对应解决方法如下:

1. 未正确解析API响应的JSON格式

大部分API返回的响应默认是字符串类型的JSON,你需要先调用JSON.parse()将其转换为JavaScript对象才能访问属性。
示例代码:

// 假设调用接口拿到的原始响应是respStr
const resp = JSON.parse(respStr);
// 解析完成后再访问属性
for (let i = 0; i < resp.length; i++){
    // 注意原代码的单等于号=是赋值操作,要修改为判断相等的==或===
    if(resp[i].name === key){
        // 执行对应逻辑
    }
}

注意:你之前的判断代码里用了单等于号=,这是赋值操作,会直接修改对象的name属性,需要改成双等于==或者严格等于===做判断,这是非常常见的语法坑。

2. API返回的对象属性键名存在大小写/拼写差异

如果已经解析过JSON还是拿不到属性,可以先打印完整的对象确认属性名是否和预期一致,比如有没有是Name、NAME或者拼写错误的情况:

// 打印完整的数组内容确认结构
console.log('完整响应数组:', resp);
// 打印单个元素的所有键名
console.log('第一个元素的所有属性:', Object.keys(resp[0]));

确认正确的键名之后,你也可以用方括号语法访问属性,对包含特殊字符、大小写不确定的键名兼容性更好:

const targetKey = 'name'; // 替换为确认后的正确键名
for (let i = 0; i < resp.length; i++){
    if(resp[i][targetKey] === key){
        // 执行对应逻辑
    }
}

3. 响应数据存在嵌套结构

部分API会把实际的数组放在响应的某个嵌套字段里,比如resp.data才是你要的对象数组,而不是直接用resp本身遍历,这种情况也需要先打印完整的响应结构确认层级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:45:03