首页 > 解决方案 > 在 Angular 6 上使用随机属性名称解析 JSON

问题描述

我正在使用一个使用 JSON 的 Angular 6 应用程序,该 JSON 在地图数组上具有一些固定属性(开始、结束、可选)以及其他可以存在或不存在取决于先前请求的属性,请注意它的名称也有所不同,而且我无法控制它们,但它们始终是数字的。我的疑问是如何解析这些变量字段。

"speed": 122,
"name":"abc",
"data": [{
    "start":123,
    "end": 456,
    "optional": false,
    "AA": 12.3,
    "S3D": 16.4
 },{
    "start":343,
    "end": 446,
    "optional": false,
    "AA": 13.3,
    "S3D": 14.4
 }]

数据.ts

export class Data {
   start: number;
   end: number;
   optional: boolean;
}

服务.ts

getData(): Observable<Data> {
   return this.http.get<Data>(this.endPoint);
}

标签: jsonangulartypescriptwebservice-client

解决方案


好吧,如果您知道服务将响应的所有属性,您可以使用 "?:" 使您的界面具有可选属性,例如

export interface Data {
  start: number;
  end: number;
  optional: boolean;
  optionalProperty?: string;
  optionalProperty2?: number;

 }

通过这种方式,您无需担心会从服务接收到的属性,因为 typescript 会映射即将到来的属性

我希望这就是你要找的


推荐阅读