2010-04-08 8 views
1

일부 JSON 출력의 헤더에서 필드 이름을 가져 오려고합니다.JSON 배열을 반복합니다.

obj = JSON.parse(jsonResponse); 

for (var key in obj.HEADER) { 
    response.write (obj.HEADER[key].label); 
    response.write (key); 
} 
다음 코드를 사용하여 헤더 및 출력 필드와 라벨 (즉, 회사와 회사 명)을 통해 내가 루프 수있어

{"HEADER":{"company":{"label":"Company Name"},"streetaddress":{"label":"Street Address"},"ceo":{"label":"CEO Name","fields":{"firstname":{"label":"First Name"},"lastname":{"label":"Last Name"}}} 

: 다음은 상기 JSON 헤더 정보의 샘플입니다

하지만 필드의 하위 배열 (예 : 이름 및 이름)을 반복하여 출력하는 방법을 알아낼 수 없습니다.

아이디어가 있으십니까?

답변

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); 
관련 문제