Javascript对象遍历
我需要关于遍历以下JSON中的每个元素的帮助,获取key和value,并将其像无序列表一样打印出来Javascript对象遍历,javascript,json,list,unordered,Javascript,Json,List,Unordered,我需要关于遍历以下JSON中的每个元素的帮助,获取key和value,并将其像无序列表一样打印出来 var dataSource = ({ "Items": ({ "Deserts": ({}), "Veg": ({ "VegPulao": "Veg Pulao", "PalakPaneer
var dataSource = ({
"Items": ({
"Deserts": ({}),
"Veg": ({
"VegPulao": "Veg Pulao",
"PalakPaneer": "Palak Paneer",
"PaneerButterMasala": "Paneer Butter Masala"
}),
"Chicken": ({
"Tandoori": "Tandoori special"
}),
"Hot drinks": ({
"Coffe": ({ "Hot": "Hot Coffe", "Medium": "Medium", "Others": ({ "Iris": "Iris Coffe", "Capuccino": "Capuccino" }) }),
"Tea": ({"Red": "Red Tea", "Black": "Black Tea"}),
"BadamMilk": "Hot Badam Milk",
"Bornvita": "Hot Bornvita",
"Milk": "Hot Milk"
}),
"Juice": ({
"Mango": "Mango",
"Berry": "Berry",
"Grapes": "Grapes",
"Wine": ({
"Rose": "Rose",
"Red wine": "Red",
"Apple": "Apple",
"Hard drinks": ({
"Royal challenge": "Royal challenge",
"Blender's Pride": "Blender's Pride"
})
})
})
})
});
现在还不清楚您想要什么形式的输出,但这里有一种遍历数据结构并生成缩进输出的方法。此外,括号在数据定义中是不必要的(我已经删除了它们,以使数据更易于阅读)
工作演示:你在为实现目标而努力什么??请同时粘贴代码,我想在div元素中打印每个值并输入这个JSON。先生,我需要一些帮助。请注意,您的示例中有一个JavaScript对象,而不是JSON。即使您以JSON的形式获取数据,一旦对其进行解析,您也要处理常规JavaScript对象和数组。问题不在于JSON,而在于如何处理JavaScript对象/数组。@VictorSoto:为什么
()
应该是[]
?这只是分组运算符。它们完全没有必要,但它们是完全有效的。诚然,相同的数据不是有效的JSON,但它肯定是有效的JavaScript,这就是我们这里的内容。非常感谢verymuch先生,这是一个有用的代码。。我可以给你电子邮件地址吗,我想成为你的朋友这是完美的代码,感谢jfriend00。情况是这样的closed@user3067443-由于您可能是StackOverflow新手,您是否知道在StackOverflow上,如果您得到了一个好答案,您应该通过单击答案左侧的复选标记来选择“最佳答案”?这会告诉社区你的问题已经得到了回答,奖励提供答案的人,并为你按照正确的程序赢得一些声誉积分。谢谢你,先生,非常感谢你的帮助。
function output(str, level) {
var obj = document.getElementById("output");
var div = document.createElement("div");
var node = document.createTextNode(str);
div.style.marginLeft = (level * 20) + "px";
div.appendChild(node);
obj.appendChild(div);
}
function traverseObject(obj, level) {
for (var prop in obj) {
if (typeof obj[prop] === "object") {
output(prop, level);
traverseObject(obj[prop], level + 1);
} else {
output(prop + ": " + obj[prop], level);
}
}
}
traverseObject(dataSource, 0);