Как мне обрабатывать имена полей JSON верхнего регистра в моей строчной модели - PullRequest
0 голосов
/ 11 сентября 2018

Я новичок в Angular и только начал свой первый проект с Angular 6. У меня есть REST API, который предоставляет моему приложению данные.Служба и мое приложение обмениваются данными, поскольку результаты выводятся на консоль, как и ожидалось.Проблема в том, что автоматическое отображение свойств Angular не удается;все имена полей в JSON имеют верхний регистр, а имена свойств в моей модели - нет.Как сделать так, чтобы в отображении не учитывался регистр ИЛИ вручную создавать карту полей?

JSON из REST API:

[
    {
        "ID": 123456,
        "LOCATION_LISTING": "Place of Origin",
        "SCIENTIFIC_NAME": "Gavia Immer"
    }
]

Угловая модель:

export interface IThing {
  id: number;
  location_listing: string;
  scientific_name: string;
}

1 Ответ

0 голосов
/ 11 сентября 2018

Доступ к свойству объекта JavaScript по имени свойства чувствителен к регистру. Вы должны либо изменить результаты, либо переименовать свойства в интерфейсе IThing, чтобы они были прописными. Я рекомендую вам сделать их прописными. Так что то, что вы видите на сетевой панели браузера, совпадает с тем, что вы видите в исходном коде.

export interface IThing {
   ID: number;
   LOCATION_LISTING: string;
   SCIENTIFIC_NAME: string;
}

this.http.get<IThing[]>(...);

Если вы действительно хотите, чтобы они были строчными. Вам нужно будет изменить результаты так, чтобы ключи были строчными.

this.http.get<IThing[]>(...)
    .pipe(map((things) => {
        return things.map((thing)=> {
            const obj = {};
            Object.keys(thing).forEach((key)=>obj[key.toLowerCase()]=thing[key]);
            return obj;
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...