【问题标题】:Angular 4 - Typescript: json2typescript json key mapperAngular 4 - 打字稿:json2typescript json键映射器
【发布时间】:2018-11-22 23:09:31
【问题描述】:

对不起,我没有很好地解释它。我再次编辑我的问题:

我有一个 angular 4 应用程序,我使用 json2typescript 从 json 转换为对象,反之亦然,但我有一个问题,因为我有一个类结构,而来自外部 api 的响应 json 有另一个结构。示例:

Customer {
  @JsonProperty('idCardNumber', String)
  idCardNumber: string = undefined;
  @JsonProperty('rolInfo.name',String) 
  name: string = undefined;
  @JsonProperty('rolInfo.surname',String) 
  surname: string = undefined;  
}

外部 Json API 响应:

 {
   "idCardNumber": "08989765F",
   "rolInfo": {
      "name": "John"
      "surname: "Smith"
   }
 }

所以,我想从上面的 json 映射到我的 Customer 对象,而不是改变我的结构。我尝试将 'rolInfo.name' 放入 JsonProperty,但这不起作用。

【问题讨论】:

    标签: json angular typescript frontend angular4-httpclient


    【解决方案1】:

    将您的客户类更改为如下所示

    Customer {
      @JsonProperty('idCardNumber', String)
      idCardNumber: string = undefined;
    
      @JsonProperty('rolInfo', Any) 
      rolInfo: any = {}; // if you set this to undefined, handle it in getter/setter
    
      get name(): string {
          return this.rolInfo['name'];
      }
    
      set name(value: string) {
          this.rolInfo['name'] = value;
      }
    
      get surname(): string {
         return this.rolInfo['surname'];
      }
    
      set surname(value: string) {
          this.rolInfo['surname'] = value;
      }
    }
    

    应该这样做

    【讨论】:

    • 感谢您的回答,但我没有很好地解释。我编辑了我的回复,以提供有关我的 Customer 类和 json 文件的更多详细信息。
    • 到目前为止,您还可以实现自定义转换器,它可能看起来更好一点。但当然,这个解决方案也行得通!
    【解决方案2】:

    似乎响应 JSON 格式已经很好,您不需要进行转换。 我建议创建模型,因为它们允许在进行 API 调用并将响应绑定到该模型时进行序列化和反序列化。

    【讨论】:

    • 对不起,我不明白你的回答。你能更具体一点,请给我一个例子吗?在此先感谢:)
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2019-11-19
    • 1970-01-01
    • 2019-06-03
    • 2020-09-16
    • 2021-01-09
    • 2021-04-02
    • 2019-04-11
    相关资源
    最近更新 更多