JavaScript에서 JSON 중첩 객체(nested object)를 출력하려면 for 루프와 함께 JSON.parse() 메서드를 사용하면 됩니다. 문자열 형태로 저장된 JSON 데이터를 파싱한 후, 반복문을 통해 원하는 값을 손쉽게 추출할 수 있습니다.
예제 코드
다음은 학생 정보 배열 안에 문자열로 된 과목 상세 정보(subjectDetails)가 중첩되어 있는 JSON 데이터를 처리하는 예제입니다.
var details = [
{
"studentId": 101,
"studentName": "John",
"countryName": "US",
"subjectDetails": "{\"0\":\"JavaScript\",\"1\":\"David\"}"
},
{
"studentId": 102,
"studentName": "Bob",
"countryName": "UK",
"subjectDetails": "{\"0\":\"Java\",\"1\":\"Carol\"}"
},
{
"studentId": 103,
"studentName": "Mike",
"countryName": "AUS",
"subjectDetails": "{\"0\":\"MongoDB\",\"1\":\"Adam\"}"
}
]
for (const detailsObject of details) {
const subjectDetailsObject =
JSON.parse(detailsObject.subjectDetails);
console.log(subjectDetailsObject[0]);
}프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo145.js라고 가정합니다.
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo145.js JavaScript Java MongoDB
코드 설명
동작 원리를 간단히 정리하면 다음과 같습니다.
1. for...of 루프: details 배열의 각 객체를 순회합니다.
2. JSON.parse(): subjectDetails 필드는 문자열 형태의 JSON이므로, 이를 실제 객체로 변환합니다.
3. console.log(): 변환된 객체에서 키 "0"에 해당하는 값(과목명)을 출력합니다.
이처럼 JSON.parse()를 활용하면 문자열로 직렬화된 중첩 JSON 데이터도 자유롭게 다룰 수 있습니다.