Angular如何访问JSON内部属性 报错Itoto[]类型不存在color属性怎么办
问题根因
- 你给请求返回值声明的类型为
Itoto[](Itoto类型的数组),但实际接口返回的是单个包含color属性的对象,数组本身不存在color属性,因此触发类型错误。 - 你定义的
Itoto接口结构和实际JSON返回结构不匹配,JSON中color字段是二维数组,和你当前写的结构不一致。
修复方案
- 修正Interface定义,匹配实际JSON结构:
export interface Itoto { // color为二维数组,内层数组第一位是id,后续为颜色值 color: [id: string | number, ...colors: string[]][] }
- 修正请求回调的参数类型,把
Itoto[]改为Itoto:
get() { this.service.get().subscribe((data: Itoto)=> { this.array = data.color }); }
补充说明
如果你要读取具体的颜色值,可通过下标访问:
- 读取第一组的id:
this.array[0][0],值为"1" - 读取第一组的红色:
this.array[0][1],值为"red" - 读取第一组的绿色:
this.array[0][2],值为"green"
内容的提问来源于stack exchange,提问作者user16230654
相关产品推荐
相关产品推荐

