[英]Parse JSON Object in Typescript
我对使用Spring Boot的Angular和构建服务都是新手。 因此,如果下面的问题很简单,请原谅。
我有来自spring rest服务的以下JSON响应。 我正在尝试将此服务响应映射到Angular材质数据表。
但是,由于我还是Angular,Typescript和解析json对象的新手,请您帮我指点一下如何将下面列出的json响应映射到我的接口。
JSON回应
{
"content": [
{
"id": "1000",
"name": "R&D IN",
"location": "IN",
"costCenter": "RD-001"
}
],
"last": false,
"totalElements": 10,
"totalPages": 10,
"size": 1,
"number": 1,
"sort": [
{
"direction": "ASC",
"property": "name",
"ignoreCase": false,
"nullHandling": "NATIVE",
"ascending": true,
"descending": false
}
],
"first": false,
"numberOfElements": 1
}
我需要在上面的json响应中映射以下两个属性-> content和totalRecords
我在Angular中有以下服务代码
department.service.ts
getAllDepartments(filter: string, sortOrder: string, pageNumber: number, pageSize: number): Observable<DepartmentList>{
return this.http.get<DepartmentList>(this.API_URL + '/api/department/', {
params: new HttpParams()
.set('filter', filter)
.set('sort', 'name')
.set('page', pageNumber.toString())
.set('size', pageSize.toString())
});
}
department.component.ts
this.deptService.getAllDepartments(filter, sortDirection,pageIndex, pageSize)
.pipe(
catchError(() => of([])),
finalize(() => this.loadingSubject.next(false)))
.subscribe(
departments => {
let obj = JSON.stringify(departments);
console.log('Department List :: ', departments);
console.log(obj.content);
this.departmentSubject.next(departments.content);
this.departmentRecCount.next(departments.totalElements);
});
但是,最后两行显示了我的角度误差。 但是,尽管有错误,该代码仍然有效
错误在以下两行中显示-
this.departmentSubject.next(departments.content);
this.departmentRecCount.next(departments.totalElements);
错误消息 -错误TS2339:类型'any [] |类型上不存在属性'content' DepartmentList”。 属性“ content”在类型“ any []”上不存在。
Department.model.ts
export interface DepartmentList {
content: Department[];
totalElements: number;
}
export interface Department {
id: string;
name: string;
location: string;
costCenter: string;
}
我该如何解决以上问题。
如果已经在其他任何线程中对此进行了解释,请原谅。
分配之前,请尝试键入演员表departments
。
const deptList = departments as DepartmentList;
this.departmentSubject.next(deptList.content);
this.departmentRecCount.next(deptList.totalElements);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.