JSON → CSV 변환
JSON 배열을 붙여넣으면 엑셀·구글시트용 CSV로 바로 바꿔줍니다 · 데이터는 기기 밖으로 나가지 않아요
설명
객체 배열 형태의 JSON을 CSV 표 형식으로 변환합니다.
다음에 자주 같이 쓰는 도구
서버 API나 데이터베이스 내보내기 결과가 JSON 배열로 제공될 때, 이를 Excel이나 Google Sheets에서 바로 열려면 CSV 형식으로 변환해야 합니다. 이 도구는 JSON 배열을 입력하면 헤더와 데이터 행이 올바르게 정렬된 CSV 파일로 변환해줍니다. 설치나 로그인 없이 브라우저에서 즉시 사용할 수 있습니다.
사용 방법
입력창에 JSON 배열(예: [{"name":"홍길동","age":30}, ...])을 붙여넣고 '변환'을 누르면 모든 객체의 키를 모아 CSV 헤더로 만들어 변환합니다. 변환 결과는 결과 카드에서 바로 확인할 수 있고, '복사' 버튼으로 클립보드에 담거나 '다운로드' 버튼으로 UTF-8(BOM 포함) .csv 파일로 저장할 수 있습니다. 표준 CSV(쉼표 구분)로 출력하므로 Excel·Google Sheets에서 바로 열 수 있습니다.
이럴 때 유용해요
쇼핑몰 주문 내역, 회원 목록, 설문 응답 등 반복적인 레코드 구조를 가진 JSON 데이터를 스프레드시트로 분석해야 할 때 가장 유용합니다. 개발자가 API 테스트 결과를 기획자나 운영자에게 전달할 때, 코드 작성 없이 바로 읽을 수 있는 CSV로 건네줄 수 있습니다. 또한 데이터 마이그레이션 작업에서 JSON 덤프를 CSV로 바꿔 스프레드시트에서 데이터 정합성을 검토하는 용도로도 자주 쓰입니다.
자주 하는 실수
JSON 배열이 아닌 단일 객체({...})를 입력하면 변환이 되지 않거나 결과가 예상과 다를 수 있습니다. 반드시 [{...}, {...}] 형태의 배열이어야 합니다. 객체 내에 중첩 객체나 배열이 있으면 해당 값이 JSON 문자열로 그대로 들어가는데, 이 경우 Excel에서 셀 내용을 추가로 파싱해야 합니다. 또한 문자열 값에 쉼표가 포함된 경우 자동으로 큰따옴표로 감싸져 처리되므로, CSV를 열었을 때 의도치 않게 따옴표가 보인다면 이 때문입니다.
자주 묻는 질문
배열 안에 객체마다 키가 다르면 어떻게 되나요?
한글 데이터를 Excel에서 열었을 때 깨지는 경우가 있나요?
중첩된 JSON 구조도 변환되나요?
변환 후 숫자가 문자로 처리되지 않나요?
파일 크기 제한이 있나요?
개인정보처리방침
모든 처리는 브라우저 내부에서만 수행되며 입력값·파일은 서버로 전송·저장되지 않습니다. 광고: Google AdSense(쿠키 사용 가능, 설정). 문의 kjh920424@gmail.com
이 도구의 변환 방식
JSON 배열을 붙여넣으면 각 객체를 CSV 한 행으로 펼쳐 줍니다. 처리 순서는 이렇습니다. 먼저 배열 안의 모든 객체를 훑어 키(key)를 수집하고, 그 합집합을 CSV의 첫 줄(헤더)로 만듭니다. 그다음 객체마다 헤더 순서대로 값을 채우며, 어떤 객체에 없는 키는 빈 칸으로 둡니다. 즉 [{"이름":"김","나이":30},{"이름":"이","도시":"서울"}]은 이름,나이,도시 세 컬럼으로 정리되고 빠진 값은 공란이 됩니다. 모든 계산은 브라우저 안에서만 일어나며 입력한 데이터는 서버로 전송되지 않습니다.
따옴표·쉼표·줄바꿈 처리
CSV는 쉼표로 칸을 나누기 때문에, 값 안에 쉼표·큰따옴표·줄바꿈이 들어 있으면 그 값을 큰따옴표로 감쌉니다. 값 내부의 큰따옴표는 두 개("")로 이스케이프합니다. 예를 들어 주소: "서울, 강남구" 같은 값은 CSV에서 "서울, 강남구"로 나가 엑셀에서 한 칸으로 정확히 읽힙니다. 이 규칙(RFC 4180)을 지키기 때문에 그냥 쉼표로 이어 붙이는 방식보다 데이터가 깨지지 않습니다.
중첩 객체·배열은 어떻게 되나
CSV는 평평한 표 구조라 계층을 표현하지 못합니다. 그래서 값이 객체나 배열이면 그 값을 JSON 문자열 그대로 한 칸에 넣습니다. 예를 들어 {"태그":["A","B"]}는 태그 컬럼에 ["A","B"]가 통째로 들어갑니다. 계층 데이터를 온전한 표로 펼치려면, 변환 전에 원본 JSON에서 주소.도시처럼 필요한 필드를 최상위로 꺼내 두는 편이 결과가 깔끔합니다.
이럴 때 씁니다
| 상황 | 활용 |
|---|---|
| API 응답 저장 | REST API로 받은 목록 JSON을 엑셀·구글시트에서 열어 검수·집계 |
| DB 조회 결과 공유 | 개발자가 뽑은 JSON을 비개발자 동료에게 스프레드시트로 전달 |
| 로그·이벤트 정리 | 기록된 JSON 로그를 표로 바꿔 피벗·필터로 분석 |
| 일회성 마이그레이션 | 다른 툴에 CSV로 넣기 전 형식만 빠르게 변환 |
실전 팁
엑셀에서 한글이 깨지면 파일 인코딩 문제일 수 있으니, 저장 시 UTF-8(BOM 포함)로 여는 것을 확인하세요. 또 숫자 앞의 0(예: 우편번호 03187)은 엑셀이 자동으로 지우므로, 그대로 보존하려면 원본 JSON에서 문자열로 두거나 엑셀에서 해당 열을 텍스트로 지정한 뒤 붙여넣으세요. 최상위가 객체 하나(배열이 아님)라면 [ ]로 감싸 배열로 만든 뒤 변환하면 한 행짜리 CSV가 나옵니다.
자주 묻는 질문
JSON이 배열이 아니라 객체 하나여도 되나요?
이 도구는 객체 배열을 기준으로 각 객체를 한 행으로 만듭니다. 단일 객체는 대괄호로 감싸 [{ ... }] 형태로 바꾸면 한 행짜리 CSV로 변환됩니다.
객체마다 키가 다른데 어떻게 처리되나요?
모든 객체의 키를 모아 합집합으로 헤더를 만듭니다. 특정 행에 없는 키는 빈 칸으로 채워지므로 데이터가 밀리지 않고 컬럼이 정렬됩니다.
구분자를 쉼표 대신 세미콜론이나 탭으로 바꿀 수 있나요?
이 도구는 표준 CSV인 쉼표를 사용합니다. 한국어 엑셀에서 쉼표 CSV가 한 칸에 몰려 보인다면, 엑셀의 데이터 → 텍스트 나누기에서 쉼표를 구분자로 지정하면 정상적으로 열립니다.
입력한 데이터가 외부로 전송되나요?
아니요. 변환은 브라우저 안에서만 실행되며 JSON 데이터를 서버로 보내지 않습니다. 민감한 데이터도 이 페이지를 벗어나지 않습니다.