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

Angular2如何访问JSON子节点?尝试代码后无法获取Id与parent求解答

解决Angular中访问JSON子节点的问题

首先得指出你当前代码的核心问题:你的orderList是一个对象而非数组,而*ngFor指令只能迭代数组或可迭代对象。直接遍历对象的话,拿到的其实是对象的键名(比如这里的ref1),所以order[0]自然得不到你想要的结果。

根据你的数据结构,分两种场景给你解决方案:

场景1:orderList包含多个类似ref1的动态键

如果你的orderList可能有多个类似ref1的键(比如ref2、ref3),需要遍历这些键对应的子节点,可以先把对象的键转换成数组:

组件代码

在组件类里添加一个getter方法,将对象的键转为数组:

get orderKeys(): string[] {
  return Object.keys(this.orderList);
}

视图代码

在模板里遍历这个键数组,再通过键访问对应的子节点:

<tr *ngFor="let key of orderKeys">
  <!-- 访问Id字段 -->
  <td>{{ orderList[key].Id }}</td>
  <!-- 遍历order数组,访问parent字段 -->
  <td>
    <span *ngFor="let item of orderList[key].order">
      {{ item.parent }}
    </span>
  </td>
</tr>

场景2:orderList只有ref1这一个固定键

如果ref1是固定的键名,不需要遍历顶层对象,直接访问即可:

视图代码

<!-- 直接获取ref1下的Id -->
<tr>
  <td>{{ orderList.ref1.Id }}</td>
</tr>

<!-- 遍历ref1下的order数组,获取每个item的parent -->
<tr *ngFor="let item of orderList.ref1.order">
  <td>{{ item.parent }}</td>
</tr>

这样就能正确拿到你需要的Id和parent字段啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:13:27