중첩 JSON을 CSV로: 행과 열 선택
두 개의 레코드, 다섯 개의 열, 그리고 CSV가 보존할 수 없는 세부 사항.
JSON 내보내기에는 목록 안에 목록이 포함될 수 있지만, CSV는 행과 열이 필요합니다. 변환하기 전에 어떤 목록을 테이블로 만들지, 각 레코드의 값은 어떻게 처리할지 선택해야 합니다.
이 샘플 JSON에는 data.items 아래에 두 명의 제작자가 있습니다. 각 제작자에는 중첩된 creator 객체, tags 배열, note 필드가 있습니다. 한 메모는 null이고, 다른 메모는 빈 문자열입니다.
열을 선택하기 전에 레코드 선택
CSV, JSON 및 YAML 변환기를 열고 샘플을 가져온 다음 원본에서 JSON, 대상에서 CSV를 선택합니다. 옵션을 열고 **데이터 경로(선택 사항)**를 /data/items로 설정합니다.
경로가 없으면 외부 객체가 한 행이 됩니다. 경로가 있으면 두 항목이 두 행이 됩니다. 경로는 데이터를 선택할 뿐, 필드 이름을 바꾸거나 일치하는 값을 검색하지 않습니다.
경로는 JSON Pointer 표기법을 따라 슬래시로 구분된 이름을 사용합니다. /data/items을 입력하세요. data.items은 올바른 경로가 아닙니다. 필드 이름 자체에 슬래시가 포함된 경우 해당 슬래시는 ~1로 작성하고, 리터럴 물결표는 ~0를 사용합니다.
중첩 객체를 한 셀에 넣을지 결정
중첩 객체 평면화가 꺼져 있으면 열은 id, creator, tags, note입니다. 제작자 객체는 JSON 텍스트로 하나의 CSV 셀을 차지합니다. 이는 유효한 CSV이지만, 국가별로 정렬하려면 불편합니다.
평면화를 켜면 열은 다음과 같아집니다:
/id
/creator/name
/creator/region
/tags
/note
이제 Zoë와 AU는 각각의 셀을 갖습니다. 슬래시 접두사가 붙은 헤더는 각 값이 어디서 왔는지 설명합니다. 또한 리터럴 필드 이름 creator.name과 중첩 필드 name의 혼동을 방지합니다.
중첩 셀 CSV와 평면화된 CSV를 비교해 보세요. 둘 다 두 개의 데이터 행이 있습니다. CSV 셀 내 JSON 주변의 이중 따옴표는 이스케이프 처리이며, 데이터가 중복된 것이 아닙니다.
배열은 추가 행으로 변환되지 않음
평면화는 중첩 객체를 확장합니다. 배열을 여러 행으로 나누거나 각 배열 항목에 대해 별도의 열을 만들지 않습니다. 이 예에서 /tags은 여전히 한 셀에 단일 JSON 배열을 포함합니다:
["design","video"]
스프레드시트에 태그별로 한 행이 필요하다면, 먼저 해당 테이블을 명시적으로 준비하세요. 각 행에 제작자 ID를 반복할지, 빈 태그 목록을 어떻게 표현할지 결정하세요. 변환기는 이러한 결정을 대신 내려주지 않습니다.
나중에 재구성해야 한다면 JSON을 유지하세요
CSV에는 누락된 값, null, 빈 문자열 사이의 내장된 구분이 없습니다. 이 샘플의 두 메모는 모두 빈 셀로 내보내집니다. 기본 설정으로 해당 CSV를 다시 변환하면 두 개의 빈 문자열이 생성됩니다.
다시 변환된 JSON도 /creator/name을 리터럴 키로, /tags을 문자열로 유지합니다. 중첩 객체를 재구성하거나 배열을 자동으로 파싱하지 않습니다. 나중에 원래 구조를 복원하려면 원본 JSON을 보관하세요.
ID 001는 이 변환기에서 텍스트로 유지됩니다. 스프레드시트는 CSV를 열 때 이를 숫자로 해석할 수 있습니다. ID 열도 텍스트로 가져오세요. 스프레드시트용 내보내기에는 스프레드시트 수식으로부터 CSV 보호를 켜두고, 공유 전에 파일을 검토하세요.
확인한 내용
2026년 10월 8일에 샘플을 도구와 동일한 변환 함수로 실행했습니다. 두 CSV 변형, 두 행 수, 다섯 개의 평면화된 열, JSON으로의 재변환을 확인했습니다. 결과 파일에는 출력과 다운로드 해시가 포함되어 있습니다.
테이블 미리보기는 최대 500행을 표시합니다. 이는 내보내기의 전체 개수가 아닙니다. 더 큰 데이터 세트를 작업할 때는 표시된 총계와 다운로드된 파일을 확인하세요.