【发布时间】:2020-10-15 10:02:24
【问题描述】:
我在迭代一个简单的嵌套 json 时遇到了很大的困难。出于某种原因,我似乎无法获得我想要的输出。我正在寻找迭代:
{
"onShift": {
"fastTrack1": {
"name": "Bob, bob",
"shift": "7a-7p",
"service": "Fasttrack",
"spectra": "722413",
"office": "",
"cell": ""
},
"fastTrack2": {
"name": "Bill, Bill",
"shift": "7a-7p",
"service": "Fasttrack2",
"spectra": "54827",
"office": "",
"cell": "123-456-9090"
},
"incoming": {
"incoming_fastTrack1": {
"name": "Billy, Bob",
"shift": "7p-7a",
"service": "Fasttrack",
"spectra": "54821",
"office": "",
"cell": "123-456-8909"
},
"incoming_fastTrack2": {
"name": "Funny, Bob",
"shift": "7p-7a",
"service": "Fasttrack2",
"spectra": "3478",
"office": "",
"cell": ""
},
"shiftEnd": {
"ended_E_MD": {
"name": "Kissy Bob",
"shift": "7a-3p",
"service": "Area E",
"spectra": "3281",
"office": "",
"cell": "123-456-12345"
},
"ended_D_MD": {
"name": "funky bob",
"shift": "7a-3p",
"service": "Area D",
"spectra": "0003",
"office": "",
"cell": ""
},
"ended_DE_MD": {
"name": "Jimmy, Bob",
"shift": "10a-6p",
"service": "Area D-E",
"spectra": "0002",
"office": "",
"cell": ""
},
"ended_Tr_MD": {
"name": "Jim, Bob",
"shift": "8a-4p",
"service": "Triage",
"spectra": "0001",
"office": "",
"cell": ""
}
}
}
我尝试迭代的方式是这样的(我尝试过的多种方式之一):
$.getJSON("../data/json/erCall.json", function(data){
for (var i in data['onShift']){
var name = data['onShift'][i].name;
var spec = data['onShift'][i].service;
var shift = data['onShift'][i].shift;
var cell = data['onShift'][i].cell;
var off = data['onShift'][i].office;
$("#dataTargetOnCall").append('<tr><td>'+name+'</td><td>'+service+'</td>...etc');
}
});
我也试过了:
$.getJSON("../data/json/erCall.json", function(data){
for (var i in data){
for (var j in data[i]){
var name = data[i]['onShift'].name;
var spec = data[i]['onShift'].service;
var shift = data[i]['onShift'].shift;
var cell = data[i]['onShift'].cell;
var off = data[i]['onShift'].office;
...等等
我的意图是迭代“onShift”下的所有列表并将所有项目(大约 20 个)输出到一个表中。它基本上输出哪些医生正在轮班。我知道如何格式化 append() 函数,但这当然是在我能够从 JSON 中捕获数据之后。
接下来我可以尝试什么?
【问题讨论】:
-
确保您的 json 格式有效
-
我很确定它是。当它少一层(并且没有嵌套)并且格式相同时,它似乎可以正常工作。
-
你可以看到这个stackoverflow.com/a/15268692/7528659,它为同样的问题提供了一个解决方案。
-
你可以看到这个enter link description here,它为你的问题提供了一个解决方案。
-
(我很感激当一个新人被否决时令人沮丧 - 它确实发生了。但是,请不要在您的帖子中添加投票建议 - 读者不感兴趣,并给他们不相关的材料阅读。如果可以的话,保持帖子简洁。我不推荐它,但你可以在 cmets 中添加关于投票的想法。)
标签: javascript json loops iterator iteration