Angular 如何使用角度材质在表格中显示对象

Angular 如何使用角度材质在表格中显示对象,angular,typescript,angular-material,angular-material-table,Angular,Typescript,Angular Material,Angular Material Table,我想展示数据-这是角垫表中的一个对象 示例如下: { "first": 15.0, "second": [{"id":1,"data_1":"foo","dat_2":"bar"}], "third": "2018-09-15T05:30", "fourth": ["

我想展示数据-这是角垫表中的一个对象 示例如下:

{
   "first": 15.0,
   "second": [{"id":1,"data_1":"foo","dat_2":"bar"}],
   "third": "2018-09-15T05:30",
   "fourth": ["ONE", "TWO"],
   "fifth": {"data_3":145,"id":2,"data_4":1600}
}
事实上,我想在一个表中显示它,在第一列中有像first、second这样的键,在第二列中有一个值,可能是字符串、数字数组或对象数组

我实际拥有的是: -在table-basic-example.ts中有两个元素:元素\数据\新的,显示正确,但我想显示新的\数据


注意:我使用angular mat dialog打开对话框,其中将显示此表。

您需要将新的\u数据转换为DataSource:

dataSource = Object.entries(NEW_DATA).map(o => {
    return { name: o[0], value: JSON.stringify(o[1]) };
});

您需要将新的_数据转换为数组。干脆

dataSource = Object.entries(NEW_DATA); 
并修改表模板。使用索引代替名称/值

<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
 
  <ng-container matColumnDef="name">
    <th mat-header-cell *matHeaderCellDef> Name </th>
    <td mat-cell *matCellDef="let element"> {{element[0]}} </td>
  </ng-container>
  
  <ng-container matColumnDef="value">
    <th mat-header-cell *matHeaderCellDef> Value </th>
    <td mat-cell *matCellDef="let element"> {{element[1]}} </td>
  </ng-container>

   <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>

您可以将新的_数据转换为数据结构dataSource acceptedThanks很多,但是我必须改变显示数据的方式,因为它对于显示包含大量记录的数据库非常有用,而不是显示包含多个值的一条记录与一条记录相连接。