首页 > 解决方案 > 从对象中提取嵌套属性

问题描述

我找不到任何与数组无关的问题/答案。我有这项服务可以从我的后端检索 DTO:

this.paymentService.createMockWireBuy(this.company.companyId, payment).subscribe((data) => {
  this.response = data;
  if(this.response.status){
    this.paymentStatus = this.response.status;
  }
});

返回的“数据”被包装在一个名为“数据”的 JsonProperty 中(必须这样做来处理我们调用的另一个服务的响应),就像这样

public class TransferDtoResponse {
  @JsonProperty("data")
  private TransferDtoRequest transferDetails;
}

所以前端的“数据”对象最终看起来像这样:

data: {
   data: {
    amount: {amount: "5.00", currency: "USD"}
    status: "pending"
    RefId: "123"
   }
}

在我将“数据”分配给响应变量后,response.status 出现未定义(在 if 语句中),因为 response 具有与上面相同的嵌套问题^。如何从对象中删除那个额外的“数据”层?我也无法访问 data.data,因为“数据”在技术上不是 DTO 对象上的字段(如下所示)

这是响应类:

export class TransferDtoResponse {
  constructor(
    public trackingRef?: string,
    public amount?: Balance,
    public status?: string
  ) {}
}

标签: angulartypescript

解决方案


分配data[ "data" ]给响应变量。


推荐阅读