动态获取object的keys和values,即不知道类的属性名,怎么获取对象属性的值

不知道类的属性名,怎么获取对象属性的值。

class Test {
id: Number
name: String
}
不知道id也不知道name。假设Test是jason数据,解析出来可能是如上的
,也可能:
class Test {
id2: Number
name2: String
}
的情况,如何获取类型名和值。

那可以使用:(假设test为Test的一个对象)
Object.values(test)可以获取所有的value,即不通过keys直接获取到values了。
也可以通过:Object.keys(test)获取到所有的keys了,即属性名。

实际例子:

   private setNewVersion(datas: rserver.ResultInfo[]) {
    if (datas) {
        for (const data of datas) {
            data['NewSoftVersion'] = [];
            if (data.SoftVersion.startsWith('[{') && data.SoftVersion.endsWith('}]')) {
                const vs = JSON.parse(data.SoftVersion);
                vs.forEach(v => {
                    data['NewSoftVersion'].push({
                        'type': Object.keys(v)[0],
                        'version': v[Object.keys(v)[0]]
                    });
                });
            } else {
                data['NewSoftVersion'].push({
                    'type': data.TypeName,
                    'version': data.SoftVersion
                });
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容