如何遍历API响应的嵌套复杂对象提取所有appId与userInfo
目标字段遍历提取方案
先梳理当前API响应的嵌套关系,明确目标字段的位置:
- 响应根对象的
data字段是业务数据数组,是所有待遍历内容的入口 data数组的每个元素下,存在platforms字段,为平台配置数组- 我们要找的
appId字段,就位于platforms数组的每个元素内部
注意:当前给出的示例响应中,没有直接命名为
userInfo的字段,同层级下的userId为对应用户标识,可根据实际业务规则调整userInfo的取值来源。
具体处理流程
- 第一层校验:读取根响应的
data字段,若非数组类型则直接返回空结果,避免遍历报错 - 第一层遍历:循环
data数组的每一条业务条目,读取条目下的platforms字段,若非数组类型则跳过该条 - 第二层遍历:循环
platforms数组的每一条平台配置,提取节点内的appId、对应用户标识值 - 结果组装:按照要求的对象结构,把提取到的字段值推入最终结果数组
参考实现代码
// 传入完整API响应对象 function extractTargetFields(apiResponse) { const result = []; const businessList = apiResponse?.data || []; // 遍历业务条目 businessList.forEach(businessItem => { const platformList = businessItem?.platforms || []; // 遍历平台配置 platformList.forEach(platformItem => { result.push({ appId: platformItem.appId || "", userInfo: platformItem.userId || "" // 替换为实际userInfo对应的取值路径 }) }) }) return result; }
对应输入的输出效果
针对你提供的示例响应,执行上述逻辑后,会得到如下结构的结果:
[ { "appId": "xxx", "userInfo": "xxx" }, { "appId": "xxx", "userInfo": "xxx" } ]
内容的提问来源于stack exchange,提问作者prashant padadune
相关产品推荐
相关产品推荐

