【问题标题】:Parse dynamic json element to the same field将动态 json 元素解析为同一字段
【发布时间】:2020-05-04 14:45:43
【问题描述】:

我尝试将 json 响应转换为人员列表。 该解决方案有效,但也许有更好的解决方案来解析它。 (我无法更改响应结构,但我可以根据需要更改人员)

Json 响应:

{ “名称1”:{ “地址”:“abc”, “城市”:“xy” }, “名称2”:{ “地址”:“abcdef”, “城市”:“xyzzzz” } }

我的人:

class Person{
name:string;
city:string;
address:string;

constructor(name: string, city: string, address: string) {
    this.name = name;
    this.city = city;
    this.address = address;
}

}

我的示例实现:

const value = JSON.parse(data);
const arr:Person[] = [];
for (var key in value) {
    if (value.hasOwnProperty(key)) {
        arr.push(new Person(key, value[key].city, value[key].address));
    }
}

【问题讨论】:

    标签: json typescript jsonparser


    【解决方案1】:

    JSON.parse 很危险,你必须用 try catch 做

    let value
    try { 
      value = JSON.parse(data);
    } catch (err) {
      value = {};
    }
    
    const arr:Person[] = Object.keys(value)
    .map(key => new Person(key, value[key].city, value[key].address));
    

    【讨论】:

    • 是的,这只是显示问题/解决方案的示例代码,...在实际应用程序中,我有一个尝试/捕捉它...但无论如何谢谢:))
    • 参见解析示例
    猜你喜欢
    • 2011-11-30
    • 2020-09-08
    • 1970-01-01
    • 2021-11-02
    • 2015-10-03
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多