我有一个不允许更改的特定JSON文件,它看起来像这样:
{
"computers" : {
"John" : {
"version" : "1.42.0",
"environment" : "Default",
"platform" : "x64",
"admin" : "true"
},
"Peter" : {
"version" : "1.43.6",
"environment" : "Default",
"platform" : "x64",
"admin" : "true"
},
"Eric" : {
"version" : "1.43.6",
"environment" : "Default",
"platform" : "x64",
"admin" : "false"
}
}
我使用JSON.parse()
方法来解析文件,然后将其放入MatTableDataSource
中。
问题是,当我需要在MatTable
中显示它时,我无法真正按照自己的方式访问它。
我有一栏想要显示所有version
参数,因此我不能说:this.dataSource.computers.????.version
你们知道我要去哪里吗?您是否知道我可以做些什么来解决这个问题?
期待您的阅读。
答案 0 :(得分:1)
角度mat-table
要求输入数据位于数组中。首先,我们使用Object.keys()提取键,其中将包含名称列表。然后,我们可以将Object.values()用于数组格式的每个键中的其他值。接下来,使用名称列表中的name
属性映射上述数组对象。
const data = {
"computers": {
"John": {
"version": "1.42.0",
"environment": "Default",
"platform": "x64",
"admin": "true"
},
"Peter": {
"version": "1.43.6",
"environment": "Default",
"platform": "x64",
"admin": "true"
},
"Eric": {
"version": "1.43.6",
"environment": "Default",
"platform": "x64",
"admin": "false"
}
}
};
const nameList = Object.keys(data.computers);
const dataList = Object.values(data.computers).map((obj, index) => {
obj['name'] = nameList[index];
return obj;
});
console.log(dataList);