json - 在 Angular 中从 json 获取键和值
问题描述
我需要从 json 中获取值(来自合并的 MySQL 表)。
我已经尝试了上一个主题的几种解决方案,但没有一个对我有用。
我的 JSON 格式是:
[
{
"idemployee":1,
"name":"Ernest",
"surename":"Pająk",
"role":"Obsługa Baru",
"employeehours":[
{
"idemployeehours":1,
"date":"2019-01-10T23:00:00.000+0000",
"quantity":8.0
}
]
}
]
我得到的是“键:0 和值:”(上面 Pardeep Jain 主题的回答)
编辑:这是我的代码:
<div *ngFor="let item of employee| keyvalue">
Key: <b>{{item.key}}</b> and Value: <b>{{item.value}}</b>
员工来自 Angular 组件并提供了提到的 JSON。问题是从“employeehours”(如数量)中获取嵌套值
解决方案
如果你在数组对象上运行 keyValue 管道,你会得到键作为数组中值的索引,所以为什么你需要一个嵌套的 ngFor 来对数组的值运行 keyvalue 管道
<div *ngFor="let item of employee">
<div *ngFor="let emp of item |keyvalue ">
Key: <b>{{emp.key}}</b> and Value: <b>{{emp.value}}</b>
</div>
</div>
更新!
如果你想支持员工小时的 sohow 键值,其中值是数组最好的情况是在这里创建一个组件来完成所有这些并使用这个组件来呈现新的值,比如递归
零件
export class RenderComponent {
@Input() items = [];
isArray(value) {
return value instanceof Array
}
}
模板
<div *ngFor="let item of items">
<div *ngFor="let obj of item | keyvalue " class="well">
Key: <b>{{obj.key}}</b> and Value: <b>{{obj.value}}</b>
<ng-container *ngIf="isArray(obj.value)">
<render [items]="obj.value"></render>
</ng-container>
</div>
</div>
推荐阅读
- robots.txt - 在谷歌搜索,网站没有显示任何描述?
- android - ReactNative:未捕获的类型错误:在构建 KitchenSink 演示时无法读取未定义的属性“forEach”
- html - 为什么我的边框图像在 IE11 中不起作用?
- android - 数据没有被推送到android studio中的firebase
- tizen - 使用合作伙伴级别证书将应用程序安装到三星 Tizen 电视
- python - 将多个文本条目添加到 Python 中的特定代码行
- swift - IntelliSense 源代码在 Xcode 10 中不起作用
- ibm-watson - 对话+发现java代码正在工作
- javascript - Chart.js - 条形图的散点图等价物是什么?
- node.js - 可以使用 Kerberos SSO 为主机创建-react-app / WebpackDevServer 代理吗?