Разбор JSON со случайными атрибибутными именами на Angular 6 - PullRequest
0 голосов
/ 10 октября 2018

Я работаю над приложением Angular 6, которое использует JSON, который имеет некоторые фиксированные атрибуты в массиве карты (начало, конец, необязательно) и другие, которые могут существовать или не существовать в зависимости от предыдущего запроса, обратите внимание, что его имена также различаютсяи я не могу их контролировать, но они всегда будут числовыми.Я сомневаюсь, как разобрать эти переменные поля.

"speed": 122,
"name":"abc",
"data": [{
    "start":123,
    "end": 456,
    "optional": false,
    "AA": 12.3,
    "S3D": 16.4
 },{
    "start":343,
    "end": 446,
    "optional": false,
    "AA": 13.3,
    "S3D": 14.4
 }]

Data.ts

export class Data {
   start: number;
   end: number;
   optional: boolean;
}

Service.ts

getData(): Observable<Data> {
   return this.http.get<Data>(this.endPoint);
}

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Что ж, если вы знаете все свойства, на которые будет реагировать служба, вы можете сделать свой интерфейс с этими необязательными свойствами с помощью "?:", Например

export interface Data {
  start: number;
  end: number;
  optional: boolean;
  optionalProperty?: string;
  optionalProperty2?: number;

 }

Таким образом, вам не нужнобеспокойство о свойствах будет получать от службы, потому что машинопись будет отображаться, которые приходят

Я надеюсь, что это то, что вы ищете

0 голосов
/ 10 октября 2018

Я не совсем понимаю, что ожидается.Но убедитесь, что это то, что вы ищете

getData(): Observable<Data> {
   return this.http.get(this.endPoint);
}



getData().subscribe(data => {
   for (let key in data) {
      // check if this the keys your looking at 
      // if yes, then start building your data structures manually here

   }
});
...