2010-04-08 174 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);