正确分配json对象给类

时间:2018-09-24 05:17:41

标签: json angular typescript

我有一个带有接口的类:

从代码中的另一个组件中,我读取了英雄列表的json,并希望为每个英雄创建一个类(以便更轻松地操作其数据)

我的商店列表类别=>

interface ShopItemInterface {
    name: string;
    image: string;
    price: number;
    description: string;
 }

 export class ShopItem implements ShopItemInterface {

    public name: string;
    public image: string;
    public price: number;
    public description: string;

     constructor(obj: object) {
        for (let key in obj) {
            // this doesn't work and I don't know why, it is always false
            if (this.hasOwnProperty(key)) {
                this[key] = obj[key];
            }

        }
    }
 }

LOADER COMPONENT CLASS =>

  ngOnInit() {
    this.http.get(this.jsonShopLocationFile).subscribe(res => {
      for (let i = 0; i < res['items'].length; i++) {
        this.shopItems.push(new ShopItem(res['items'][i]));
      }
      console.log(this.shopItems[0].name);
    });
  }

如果不手动列出所有参数,我无法找到一种将json数据正确绑定到对象的方法。 (那是一团糟,可重用性为0)

您将如何正确实现?我应该创建一个类,然后直接调用诸如hero.FromJSON(jsonObj)之类的函数来手动设置所有属性吗?我可以在构造函数中以某种方式做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

因为在构造对象时,它不具有那些属性,因此这些属性将是不确定的,只需删除测试即可。请记住,接口是用于编译器的TypeScript构造,并且您正在浏览器中运行JavaScipt。

numpy.ndarray