JSON CSV 변환기 | 중첩 JSON 평탄화·로컬 내보내기

변환브라우저에서 실행(업로드 없음)

JSON 객체 또는 레코드 배열을 검토하기 좋은 CSV로 변환합니다. 모든 행의 컬럼을 유지하고, 중첩 필드를 평탄화하거나 JSON 텍스트로 보존하며, 구분 기호와 스프레드시트 수식 보호를 설정할 수 있습니다. 원본은 서버에 업로드하지 않습니다.

다음에 할 작업

관련 작업 흐름을 이어가거나 이 작업 다음에 자주 사용하는 도구를 열어보세요.

이 도구 사용 방법

JSON 객체 하나 또는 비어 있지 않은 객체 배열을 붙여넣습니다.

한 글자 구분 기호로 쉼표, 탭, 세미콜론, 파이프 중 하나를 선택합니다.

중첩 컬럼을 점 표기로 만들려면 평탄화를, 한 셀에 보존하려면 JSON 텍스트를 선택합니다.

대상 시스템이 다르게 요구하지 않으면 헤더와 스프레드시트 수식 보호를 켜 둡니다.

행·컬럼·경고 수를 확인하고 빈 셀과 따옴표 처리된 값을 검토합니다.

CSV를 복사하거나 UTF-8 파일로 다운로드합니다. 구형 스프레드시트 호환이 필요하면 BOM 옵션을 유지합니다.

이 도구를 써야 할 때

API 응답 검토

API의 레코드 배열을 엑셀이나 구글 스프레드시트에서 제품·지원·QA 담당자가 필터링할 수 있는 행으로 만듭니다.

운영 데이터 전달

뒤쪽 JSON 레코드에만 있는 선택 필드도 유지한 CSV를 만들어 운영팀에 전달합니다.

QA fixture 비교

내부 데이터를 업로드하지 않고 중첩 fixture 필드를 점 표기 컬럼으로 만들어 테스트 사례를 비교합니다.

안전한 스프레드시트 가져오기 준비

큰 정수 ID 경고와 스프레드시트 수식 보호를 적용해 식별자와 사용자 입력 텍스트를 내보냅니다.

흔한 실수

레코드 대신 API 래퍼 전체를 변환함

{data:{items:[...]}} 같은 응답 전체는 레코드 배열이 아니라 하나의 래퍼 객체입니다. 각 item을 별도 CSV 행으로 만들려면 data.items 배열을 먼저 추출하세요.

긴 ID를 JSON 숫자로 둠

JavaScript 안전 정수 범위를 넘는 JSON 숫자는 내보내기 전에 자릿수가 바뀔 수 있습니다. 변환기는 이를 중단하고 큰 ID를 문자열로 감싸도록 안내합니다.

셀을 확인하지 않고 수식 보호를 끔

=, +, -, @로 시작하는 텍스트는 스프레드시트 수식으로 실행될 수 있습니다. 대상 시스템이 원본 수식을 요구하는 경우가 아니라면 수식 보호를 켜 두세요.

예시

뒤쪽 레코드의 필드까지 유지하기

모든 레코드에서 처음 나타난 순서대로 컬럼을 모으므로 뒤쪽 행에만 있는 필드도 유지되고, 앞 행에 없는 값은 빈 셀이 됩니다.

입력
[{"id":1,"name":"Ada"},{"id":2,"active":true}]
출력
id,name,active
1,Ada,
2,,true

배열을 잃지 않고 중첩 레코드 평탄화하기

평탄화 모드는 중첩 객체에 점 표기 헤더를 만들고 배열은 따옴표 처리된 JSON 텍스트로 보존해 [object Object] 같은 잘못된 값을 방지합니다.

입력
[{"id":1,"profile":{"name":"Ada"},"tags":["admin","editor"]}]
출력
id,profile.name,tags
1,Ada,"[""admin"",""editor""]"

안전한 JSON CSV 변환 방식

입력은 엄격한 JSON으로 파싱합니다. 주석, 후행 쉼표, 여러 루트, 잘못된 이스케이프, 중복 키를 구분하고 브라우저마다 다른 JSON.parse 문구 대신 정확한 행과 열을 안내합니다.

모든 행은 객체여야 합니다. 전체 행에서 처음 나타난 순서대로 헤더를 모으고, 없는 필드는 빈 셀로, null도 빈 셀로 처리합니다. 평탄화할 때 원래 키의 점과 역슬래시는 이스케이프합니다.

준비된 표는 PapaParse로 직렬화하며 행 끝은 CRLF를 사용합니다. 구분 기호, 따옴표, 줄바꿈이 들어간 셀을 올바르게 감싸고, 배열과 JSON 텍스트 모드의 값은 먼저 JSON 문자열로 보존합니다.

위험한 문자열 셀과 헤더의 수식 보호가 기본값입니다. 입력 5MB 제한과 별도로 행·컬럼·중첩 깊이·출력 크기 제한을 적용하며, 화면 복사값에는 BOM을 넣지 않고 다운로드 파일에만 선택적으로 추가합니다.

자주 묻는 질문

어떤 JSON 구조를 변환할 수 있나요?

객체 하나는 CSV 한 행으로, 비어 있지 않은 객체 배열은 여러 행으로 변환합니다. 스칼라 루트, 문자열·숫자 배열, 혼합 배열, 빈 배열은 안정적인 표 구조를 만들 수 없어 거부합니다.

중첩 객체와 배열은 어떻게 처리하나요?

평탄화 모드는 중첩 객체 경로를 점 표기 헤더로 만들고 배열을 JSON 텍스트로 저장합니다. JSON 텍스트 모드는 최상위의 객체나 배열 값을 각각 하나의 따옴표 처리된 CSV 셀에 보존합니다.

JSON이 서버로 업로드되나요?

아니요. JSON 파싱과 CSV 생성은 브라우저에서 실행됩니다. 최대 5MB의 JSON을 처리하며 정상 사용 시 변환 서버에 원본을 업로드하지 않습니다.

스프레드시트 데이터 손실과 수식 주입을 어떻게 막나요?

수식 보호는 위험한 문자열 셀 앞에 작은따옴표를 붙입니다. JavaScript 안전 범위를 벗어난 큰 정수는 행과 열 위치와 함께 차단하므로, 그런 식별자는 JSON 큰따옴표로 감싼 뒤 변환하세요.

이 도구를 검증한 방법

관리 및 검수 검토일

검증 방법: “선택 필드가 있는 API 레코드를 CSV로 내보내기” 확인에는 가이드 원본 데이터와 JSON CSV 변환기의 “구분 기호와 중첩 값 방식을 선택합니다” 절차를 사용했습니다. 출력은 문서 결과와 일치해야 했습니다. 기록 전 경계 증거는 “API 래퍼 전체를 붙여넣음”, “중첩 객체가 자동으로 원하는 표가 될 것이라 가정함” 항목별로 검토했습니다.

기대 결과: CSV 내보내기는 늦게 등장한 active까지 포함해 id,email,plan,active 열을 처음 등장한 순서로 만들고 API 레코드 두 개를 모두 보존했습니다. 각 레코드에 없는 plan 또는 active는 빈 셀로 남았고, 응답 wrapper는 데이터 행으로 직렬화하지 않았습니다.

검증한 작업 가이드 열기

관련 작업 가이드

도구를 열기 전에 자주 쓰는 작업 흐름과 예시를 확인하세요.

관련 도구

관리 중인 다른 작업 흐름을 이어서 사용해 보세요

모든 도구 둘러보기