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

Angular如何循环遍历键名不统一的JSON数据并展示name字段值

Angular 遍历非固定键名JSON提取name字段实现方案

1. 业务层逻辑修改(TS文件)

先定义接收结果的变量,再改造接口请求回调的处理逻辑:

// 组件内提前定义存储name值的数组
nameList: string[] = [];

getAll() {
  this.typeService.getAllType().subscribe(result => {
    this.nameList = Object.values(result)
      // 过滤出非空数组类型的顶层值
      .filter(val => Array.isArray(val) && val.length > 0)
      // 把多维数组合并为一维对象数组
      .flat()
      // 提取name字段,同时过滤无name的异常数据
      .map(item => item?.name)
      .filter(Boolean);
  });
}

2. 视图层渲染(HTML模板)

直接用Angular内置的*ngFor指令循环展示即可:

<div class="name-list">
  <p *ngFor="let name of nameList">
    {{ name }}
  </p>
</div>

方案说明

  • 无需提前感知接口返回的顶层键名,Object.values()会自动提取所有顶层属性的取值
  • 内置过滤逻辑自动跳过空数组、非数组类型的异常返回值,兼容接口不稳定的场景
  • 如果需要同时保留id等其他字段,仅需修改map逻辑,返回完整对象即可,示例:
    // 保留id和name的写法
    .map(item => ({id: item.id, name: item.name}))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:42:01