我正在尝试在某些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)。
有什么想法吗?
答案 0 :(得分:2)
试试这个?
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);