У меня есть интерфейс INavigation, имена полей которого отличаются от полей в данных JSON. Как мне сопоставить поля из интерфейса с данными JSON?
Вот код:
INavigation.ts
export interface INavigation {
Id: number;
AppId: number;
NavId: number;
Name: string;
ParentId: string;
PageURL: string;
Position: string;
Active: string;
Desktop: string;
Tablet: string;
Phone: string;
RoleId: string;
Target: string;
}
Данные JSON:
{
"Id": 1,
"NavAppId": 1,
"NavId": "1FGP",
"NavName": "Home",
"NavParentId": "",
"NavPageURL": "?p=home",
"NavPosition": "Top",
"NavActive": "Y",
"NavDesktop" : "Y",
"NavTablet" : "N",
"NavPhone": "Y",
"NavRoleId" : "6,17,28,43,44,49,50,59,60,63,64,77,78,79,80,81",
"NavTarget": "_parent"
}
Вот метод в службе, который получает данные из файла JSON:
getNavigations(appId: any): Observable<Array<INavigation>> {
return this.httpClient.get<Array<INavigation>>('../assets/navigations.json')
.pipe(
map(data => data.filter(navigation => navigation.NavAppId === appId))
);
}