У меня есть файл JSON, который пытается загрузить с помощью запроса http и карты для класса модели.
У меня есть файл JSON
[
{
"firstName": "Dan1",
"lastName": "Dan1"
},
{
"firstName": "Dan2",
"lastName": "Dan2"
},
{
"firstName": "Dan3",
"lastName": "Dan4"
}
]
У меня есть такой код модели:
export class Record {
firstName: string;
lastName: string;
}
и такой компонент:
import {Component} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {Record} from './models/record';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'CRM';
apiUrl = './assets/test.json';
itemList: Array<Record>;
constructor(private http: HttpClient) {
const obs = this.http.get<Record[]>(this.apiUrl, {responseType: 'json'});
obs.subscribe((records: Record[]) => {
this.itemList = records;
});
}
}
Вопросы:
Почему this.itemList не является массивом записей, несмотря натот факт, что я использую: this.http.get<Record[]>
и (records: Record[])
.Значит ли это, что Angular не будет отображать JSON в Array of Record?Если да, для чего нужны эти определения?
Можно ли как-нибудь это сделать без создания объекта вручную и помещения его в массив?