Я использую ionic 4 и пытаюсь получить массив JSON с использованием TransportAPI через http.get, однако они используют целочисленные строки в качестве ключа для объектов, которые я пытаюсь получить, а затем несколько массивы для каждого объекта, например так:
{
"departures": {
"25": [
{
"mode": "bus",
"line": "25",
"departure_time": "12:40"
},
{
"mode": "bus",
"line": "25",
"departure_time": "13:00",
}
],
"50": [
{
"mode": "bus",
"line": "50",
"departure_time": "12:46",
},
{
"mode": "bus",
"line": "50",
"departure_time": null,
},
{
"mode": "bus",
"line": "50",
"departure_time": "14:46",
}
]
}
}
Этот массив JSON хранится в "testArray: any;" и нет никаких проблем с его получением, так как я могу нормально распечатать его в журнале консоли. Через несколько часов я только что узнал, что вы должны поместить цифровые клавиши в скобки т.е. ["25"] для доступа к ним, однако я не уверен, как это сделать при использовании * ngFor, или даже если бы вы это сделали. Вот примерный код, который я пытаюсь вывести:
<div *ngFor="let bus of testArray.departures"> //this is where I'm not too sure
<ion-item-divider>
<ion-label> bus line: {{ bus.line }}</ion-label>
</ion-item-divider>
<ion-item *ngFor="let time of bus"> //no idea what I'm doing here either
{{ time.departure_time }}
</ion-item>
</div>
Любая помощь будет принята с благодарностью!
Редактировать: это код, который я использую для получения файла JSON (отсутствует импорт, компонент и т. Д. Для экономии места:
export class BusesPage implements OnInit {
testArray: any;
constructor(private http: HttpClient) {}
fillTestArray(){
this.http.get('assets/test.JSON').subscribe(data => {
this.testArray = data;
console.log(this.testArray);
});
}
ngOnInit() {
this.fillTestArray();
}
}