json - 循环遍历 JSON 键和值
问题描述
看起来很简单,但有些我无法像我想要的那样循环遍历这些项目
我有这个 json 对象
"meters":{
"Rozvadec M11":{
"0":{
"Name":"m11-mcu13_sm114",
"Title":"Svarovaci centrum Flexarc",
"Parent":"m11-mcu13",
"Status":"Running",
"State":false
},
"1":{
"Name":"m11-mcu13_sm115",
"Title":"Brousici centrum Solicad",
"Parent":"m11-mcu13",
"Status":"Running",
"State":false
}
},
"Rozvadec R1-L":{
"0":{
"Name":"r1-l-mcu1_sm100",
"Title":"Amada NCT1",
"Parent":"r1-l-mcu1",
"Status":"Device unavailable",
"State":false
},
"1":{
"Name":"r1-l-mcu1_sm101",
"Title":"Amada 1",
"Parent":"r1-l-mcu1",
"Status":"Device unavailable",
"State":false
},
"2":{
"Name":"r1-l-mcu1_sm102",
"Title":"Amada 2",
"Parent":"r1-l-mcu1",
"Status":"Device unavailable",
"State":false
}
},
我想要做的是遍历所有仪表以获得一个列表
"Rozvadec M11"
"Rozvadec R1-L"
并且在每个下面都有一个不同智能电表名称的列表
我在ts里有这个
let list = this.http.get('EndpointURL');
list.subscribe (
(response: Response)=>
{this.meters.push(response);
console.log(this.meters);
})
这在 html 中(我试图在嵌套 for 循环之前先只遍历仪表)
<ul *ngFor="let meter of meters">
<li>{{ meter}}</li>
</ul>
解决方案
您的大部分代码都是正确的,但 ngFor 并没有以这种方式使用。带有 ngFor 的 html 标签将被重复,这就是为什么您应该在 list 标签中使用它li
而不是 list 标签ul
。对你来说是这样的:
<ul>
<li *ngFor="let meter of meters">
{{meter}}
</li>
<ul>
这个确切的例子在 docs 中有所介绍。
编辑:如果您想访问列表的键,在这个SO 答案中,您可以看到 Angular6 中检索它的新方法。对于您的示例,它最终会像这样:
<ul>
<li *ngFor="let meter of meters | keyvalue">
{{meter.key}}
</li>
<ul>
您可以keyValuePipe
在docs中阅读有关 的更多信息。
推荐阅读
- android - 在 android 应用程序中,我们可以像在 iOS 中那样在设置的“应用程序信息”中添加另一行吗?
- spring - SpringMVC,如何在 servlet bean 中配置 SLL?
- javascript - addrow datepicker没有出现,如何解决
- mysql - 有人请帮我从 localhost/phpmyadmin 恢复我的数据
- c - Makefile 不工作,找不到“make”命令的路径
- python - 机器人响应频道提及
- apache-flink - Flink 是否支持 Windows 操作系统?
- ios - 如何在 FSCalender 中显示特定的月份和年份?
- scala - 鉴于linesWithFileNames:RDD [(Path,Text)],如何转置许多文件,其中Text包含矩阵?
- reactjs - 在 React Js 中登录到终端控制台而不是浏览器控制台