并提前感谢您阅读此问题(对此我表示道歉)。 考虑以下端点/ api / configuration / campaigns,它总是返回一个JSON对象数组,如下所示:
[{
"CfgCampaign": {
"callingLists": {
"CfgCallingListInfo": {
"callingListDBID": {
"value": 126
}
}
},
"DBID": {
"value": 101
},
"name": {
"value": "WI_Camp_1"
},
"state": {
"value": 1
},
"campaignGroups": {
"CfgCampaignGroupInfo": [{
"groupDBID": {
"value": 5
}
}, {
"groupDBID": {
"value": 5
}
}]
},
"scriptDBID": {
"value": 0
},
"tenantDBID": {
"value": 101
}
}
},
...
, {
"CfgCampaign": {
"callingLists": {
"CfgCallingListInfo": {
"callingListDBID": {
"value": 168
}
}
},
"DBID": {
"value": 132
},
"name": {
"value": "DBT_Campaign_015"
},
"description": {
"value": "DEBT"
},
"state": {
"value": 1
},
"scriptDBID": {
"value": 0
},
"tenantDBID": {
"value": 101
}
}
}]
我需要将此响应映射到我为此目的创建的TypeSript接口数组。 知道我只对每个对象的信息子集感兴趣,我创建了多个接口来保存数据。 主要的是CfgCampaign--代表主要对象。我还创建了一个CfgCampaignGroupInfo接口(正如您在JSON响应中看到的,它也是一个JSON对象)和CfgCallingListInfo接口。
现在我正在尝试将此响应映射到各自的TypeScript表示中,严重的是,我对如何执行此操作感到困惑。
以下是CfgCampaign界面的基本版本:
import { CfgCampaignGroupInfo } from "src/app/models/CfgCampaignGroupInfo";
import { CfgCallingListInfo } from "src/app/models/CfgCallingListInfo";
export interface CfgCampaign {
name: string;
dbid: number;
campaignGroups: CfgCampaignGroupInfo[];
callingListsInfo: CfgCallingListInfo[];
}
任何人都可以指出我正确的方向将这个JSON数组映射到相应的TS接口,考虑到对象的嵌套特性(并且还有点夸大它,有时候有嵌套数组的事实 - 例如" callingLists"可以是单个对象还是数组??
到目前为止,我已设法独立访问值,例如:
.subscribe(campaignsList => this.campaignsList = campaignsList['0']['CfgCampaign']['DBID']['value']);
非常感谢任何帮助。
干杯,
一个。