通过JSON数组循环
问题描述:
我想拉一些JSON输出的标题中的字段名称。以下是JSON头信息的示例:通过使用下面的代码头和输出的字段和标签(即公司和公司名称)通过JSON数组循环
{"HEADER":{"company":{"label":"Company Name"},"streetaddress":{"label":"Street Address"},"ceo":{"label":"CEO Name","fields":{"firstname":{"label":"First Name"},"lastname":{"label":"Last Name"}}}
我能够循环:
obj = JSON.parse(jsonResponse);
for (var key in obj.HEADER) {
response.write (obj.HEADER[key].label);
response.write (key);
}
但无法弄清楚如何遍历并输出字段的子数组(即firstname和First Name)。
任何想法?
答
试试这个吗?
obj = JSON.parse(jsonResponse);
for (var key in obj.HEADER) {
response.write (obj.HEADER[key].label);
response.write (key);
if (obj.HEADER[key].fields) {
for (var fieldKey in obj.HEADER[key].fields) {
response.write(obj.HEADER[key].fields[fieldKey].label);
response.write(fieldKey);
}
}
}
或者,如果字段本身可以有更多的领域,尝试递归:
function parseResults(obj) {
for (var key in obj) {
response.write (obj[key].label);
response.write (key);
if (obj[key].fields) {
parseResults(obj[key].fields);
}
}
}
obj = JSON.parse(jsonResponse);
parseResults(obj.HEADER);