2010-04-08 239 views
1

我想拉一些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)。

任何想法?

回答

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);