首页 > 解决方案 > 如何以角度解开 Json 数据?

问题描述

我有一个这种格式的 Json 数据

在此处输入图像描述

当我调用其余 API 时,我想用 angular typescript 解析这些数据。怎么做。

这部分是我想要转换为我的模型类数组的 java 类对象。

"gameId": 66,
"kashScore": 0,
"samScore": 1,
"wonBy": "Sam",
"createUserId": 0,
"lastModifiedUserId": 0,
"creationDate": "2020-04-20T14:05:44.263+0000",
"lastModifiedDateTime": "2020-04-20T14:05:44.264+0000",
"sessionId": 1000,
"count": null

我的模特班

在此处输入图像描述

此信息用于跟踪分页。

在此处输入图像描述

我试过这样的东西,但它给出的错误是: -

在此处输入图像描述

标签: jsonangulartypescriptobservablehttpclient

解决方案


您的响应只是一个数组。表示的数据Fifa[]是响应数组中的第一项。

HttpClient不会为您神奇地转换它。如果您想Fifa[]从您的服务返回,那么您需要将您的响应映​​射到该类型。

return this.http.get<any[]>(fifaUrl).pipe(
  map((response: any[]) => response[0])
);

编辑

您已声明要从响应中返回所有信息。在这种情况下,您应该返回一个从服务函数实现的对象GetResponse(并且可能考虑一个更合适的名称)。

fetchAllGamesRecordPaginate(
  pageNumber: number, pageSize: number
): Observable<GetResponse> { 
  const fifaUrl = ${this.baseUrl}/demo/pageNumber/${pageNumber}/pageSize/${pageSize}; 
  return this.httpClient.get(fifaUrl).pipe( 
    map((response: any[]) => {
      const pagination = response[1];
      return {
        fifa: response[0],
        totalRecord: pagination.totalRecord,
        pageSize: pagination.pageSize,
        pageNumber: pagination.pageNumber,
        totalPages: pagination.totalPages
      };
    })
  ); 
}

在这里,我将响应数组映射到实现GetResponse.


推荐阅读