html - 如何从 JSON 中提取其值为 true 的键

标签 html json angular

我有以下 JSON,我想从中提取技能是真的。

[  
   {  
      "_id":"5de9f351baca28556c6a4b71",
      "Name":"Harsha",
      "Age":20,
      "Gender":"M",
      "Skills":{  
         "Java":"",
         "Mule":true,
         "Angular":""
      }
   },
   {  
      "_id":"5de9f358baca28556c6a4b72",
      "Name":"Anji",
      "Age":21,
      "Gender":"M",
      "Skills":{  
         "Java":"",
         "Mule":true,
         "Angular":true
      }
   },
   {  
      "_id":"5dea110297c2b65298b136e4",
      "Name":"Abhi",
      "Age":25,
      "Gender":"M",
      "Skills":{  
         "Java":"",
         "Mule":true,
         "Angular":""
      }
   }
]

我可以使用以下代码打印其余数据
<table *ngIf="formTemplate">
        <tr>
            <th *ngFor="let header of questionTitleArray" >{{header}}</th>
        </tr>

        <tr *ngFor="let data of surveyDataFromDB">
                <ng-container *ngFor="let head of questionTitleArray">
                <td>{{data[head]}}</td>         
        </ng-container>
        </tr>
    </table>

(这里的 JSON 是“surveyDataFromDB”)

下面是我得到的输出
Name    Age Gender  Skills
Harsha  20  M   [object Object]
Anji    21  M   [object Object]
Abhi    25  M   [object Object]

我想要真正的技能代替 [object Object]。请帮忙。

最佳答案

您可以先将对象映射为只有真实对象。您可以使用 lodash pickBy。

mappedSurveyDataFromDB = this.surveyDataFromDB.map(
    entry => ({...entry, Skills: _pickBy(entry.Skills, Boolean)}),
  );

像这样更改模板后:
<table>
  <tr>
    <th *ngFor="let header of questionTitleArray">{{ header }}</th>
  </tr>

  <tr *ngFor="let data of mappedSurveyDataFromDB">
    <ng-container *ngFor="let head of questionTitleArray">
      <td *ngIf="head !== 'Skills'">{{ data[head] }}</td>
      <td *ngIf="head === 'Skills'">
        <ng-container *ngFor="let entry of (data[head] | keyvalue); let last = last">
          {{ entry.key }}
          <ng-container *ngIf="!last">, </ng-container>
        </ng-container>
      </td>       
    </ng-container>
  </tr>
</table>

Blitz :https://stackblitz.com/edit/angular-ga7lqg

关于html - 如何从 JSON 中提取其值为 true 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59210195/

相关文章:

javascript - 阻止在移动设备上查看我的网站

html - Bootstrap - 5 列布局

android - 如何在客户端使用 URL 从服务器下载多个图像

node.js - 微前端应用

angular - Angular 2 中的元素级局部变量

html - 在页脚小部件中居中图像

javascript - 反向地理编码 - Google map v3

javascript - Google AnnotatedTimeLine DateTime JSON 错误

php - PHP中的增量JSON解析

Angular 8 在初始化之前无法访问 'PlanningModule'