Данные foreach в ответ

Раньше я работал с JSON вот так:

this.http.get('http://localhost:3000/SumOfDipVolume').subscribe(res => {
  for (let dipVolume of res['result']) {
    // some code
});

Но теперь я не хочу попадать в объект результат, потому что мой объект JSON не включает объект результат. Это мой файл JSON:

[
  {
    "Title": "DYNAMIC DISEL 50PPM",
    "UpValue": "122,196",
    "DownValue": "-148,740.83",
    "Procentage": "45.10%"
  },
  {
    "Title": "DYNAMIC UNLEADED 95",
    "UpValue": "121,905",
    "DownValue": "-285,527.35",
    "Procentage": "29.92%"
  }
]

Теперь я должен использовать что-то вроде этого: for (let dipVolume of res) { но angular говорит мне: Объект типа не является типом массива или строковым типом. Как это повторить?

файл JSON - это данные, которые вы получаете в res?

Sachin Gupta 13.09.2018 18:46

Это проблема с машинописным текстом .subscribe((res: any[]) => { ... } )

Pankaj Parkar 13.09.2018 18:47

Да человек, именно так

Nemanja Andric 13.09.2018 18:48

Спасибо, Панкадж Паркар, ваш ответ решил проблему. Спасибо еще раз!

Nemanja Andric 13.09.2018 18:51

@NemanjaAndric добавил ответ, рад знать, помогло :) Спасибо :)

Pankaj Parkar 13.09.2018 19:01
1
5
137
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проблема в том, что вы получаете весь HTTP-запрос, если вы укажете тип контента, вы получите только ответ с результатом. попробуйте, используя следующий код.

import { HttpClient, HttpHeaders } from '@angular/common/http'; 
...
constructor(private http: HttpClient) { }

serviceApi(){
   let headers = new HttpHeaders();
   headers = headers.set('Content-Type', 'application/json; charset=utf-8');
   return this.http.get('http://localhost:3000/SumOfDipVolume', {headers})
   .subscribe(res => {
       res.forEach(dipVolume =>{
        // some code
       });
   });          
}
Ответ принят как подходящий

Это проблема решения Typescript type, она рассматривалась как тип any (но не как массив). Поскольку вы не указали какой-либо тип, вы не можете перебрать объект

Вы можете решить явно указав тип.

.subscribe((res: IMyObjectShape[]) => { // preferred way to add new interface
//.subscribe((res: any[]) => { //<- use any if you're defining any interface
  ... 
})

Другие вопросы по теме