使用Javascript循环使用特定的JSON格式
我正在处理一个HTML页面。我需要用包含一些数据的JSON文件填充页面 JSON文件的结构类似于以下内容:使用Javascript循环使用特定的JSON格式,javascript,json,Javascript,Json,我正在处理一个HTML页面。我需要用包含一些数据的JSON文件填充页面 JSON文件的结构类似于以下内容: { "City": { "header": { "first_item" : "item1", "second_item" : "item2", ... } "Tab1": { "A": [{ "name": "name", "mail": "..."
{
"City": {
"header": {
"first_item" : "item1",
"second_item" : "item2",
...
}
"Tab1": {
"A": [{
"name": "name",
"mail": "..."
},
{
"name": "name",
"mail": "..."
}
],
"B": [{
"name": "name",
"mail": "..."
},
{
"name": "name",
"mail": "..."
}
],
},
"Tab2": {
"A": [{
"name": "name",
"mail": "..."
},
{
"name": "name",
"mail": "..."
}
],
"B": [{
"name": "name",
"mail": "..."
},
{
"name": "name",
"mail": "..."
}
],
}
我的JSON文件确实比这个示例大,但是全局结构在这里。(有55个城市,每个城市有3个标签,每个标签中有更多的字母和数据)
目前,我可以通过以下方式显示JSON文件的一部分内容:
jsonObj["City"].Tab1.A[i].name
jsonObj["City"].Tab1.A[i].mail
但是,我正在寻找一个解决方案,它可以让我通过a,B,C做一个for循环。。。可自动给出以下代码的结果:
jsonObj["City"].Tab1.A[i].name
jsonObj["City"].Tab1.A[i].mail
jsonObj["City"].Tab1.B[i].name
jsonObj["City"].Tab1.B[i].mail
jsonObj["City"].Tab1.C[i].name
jsonObj["City"].Tab1.C[i].mail
即使我知道这里少了一些东西,我也试着储存A,B,C。。。在数组中,但我无法访问这样的数据,因为我的JSON数据中有任何“myArray”。。。使用这种代码:
var myArray = ["A","B","C", ...];
for(var i = 0; i < myArray.length; i++){
jsonObj["City"].Tab1.myArray[i].name
jsonObj["City"].Tab1.myArray[i].mail
}
相当于:
jsonObj["City"].Tab1.A[i].name
但在这里,我只是(扣除):
我不知道是否应该修改代码,或者修改JSON结构更好
任何帮助都将不胜感激
提前谢谢你 查看
Object.keys()
、Object.values()
和Object.entries()
。这三种方法都提供了一种在对象上循环的方法,但这三种方法中哪一种最合适将取决于您在循环中的具体操作。还有一个用于。。。如果您不喜欢使用数组方法,请使用循环。目标是什么?您只是想console.log
它们还是做其他事情?您可以尝试-我将为每个项目创建HTML元素。我可能会创建一个表,其中,名称、邮件是标题。我的目标是显示一个表(或其他内容),其中包含与用户选择的城市相关的数据(单击上一个网页上的地图)。我会检查你的建议。谢谢您您的解决方案在@NikhilAggarwal运行!我被阻止了,因为我的JSON中有一个我没有提到的小类别。所以脚本无法运行。我已经更新了我的帖子来添加它。
jsonObj["City"].Tab1.A[i].name
jsonObj["City"].Tab1.A.name