유틸
CSV ↔ JSON 변환
표 데이터를 JSON으로, JSON을 CSV로 바꿉니다.
CSV와 JSON 변환
변환 예시
CSV → JSON (첫 행을 헤더로 사용)
name,dept,amount
김오피스,개발,1200000
이데이터,영업,950000[
{ "name": "김오피스", "dept": "개발", "amount": "1200000" },
{ "name": "이데이터", "dept": "영업", "amount": "950000" }
]자주 쓰는 옵션
- 첫 행을 헤더로 — 끄면 행 배열 그대로 JSON으로 만듭니다.
- 숫자·불리언 자동 변환 — “1200000”을 숫자로.
00123같은 코드는 문자열로 유지합니다. - 중첩 객체 평탄화 —
{ user: { name } }를user.name열로 만듭니다. - 구분자 — 세미콜론·탭으로 구분된 CSV도 처리합니다.
알아두세요
- CSV는 평면 구조라 중첩 객체를 표현할 수 없습니다. 배열·객체 값은 JSON 문자열로 저장됩니다.
- JSON → CSV는 객체 배열만 지원합니다. 최상위가 객체 하나면 배열로 감싸세요.
- 헤더가 비어 있거나 중복되면
열1,이름_2처럼 자동 보정합니다. - 20MB를 넘는 파일은 브라우저 메모리 부족으로 실패할 수 있습니다.
- EUC-KR CSV는 인코딩을 직접 선택해야 할 수 있습니다.
파일은 서버로 가지 않습니다
CSV 파싱과 JSON 변환이 모두 브라우저에서 실행됩니다. 거래내역·고객명단 같은 데이터도 서버에 올리지 않고 변환할 수 있습니다. 자세한 원리는 작동 원리에 정리했습니다.
자주 묻는 질문
숫자가 문자열로 나옵니다.
기본값은 원본 CSV 값을 그대로 문자열로 유지합니다. “숫자·불리언 자동 변환”을 켜면 1200000 → 1200000, true → true로 바뀝니다. 00123 같은 코드는 문자열로 유지합니다.
중첩된 JSON도 CSV로 만들 수 있나요?
네. “중첩 객체 평탄화”를 켜면 { user: { name } }이 user.name 열로 바뀝니다. 배열은 JSON 문자열로 저장됩니다.
헤더가 중복되면 어떻게 되나요?
이름_2, 이름_3처럼 자동으로 번호를 붙입니다. 빈 헤더는 열1, 열2로 채웁니다.
CSV 한글이 깨집니다.
CSV 인코딩을 EUC-KR로 바꿔 파일을 다시 열어 보세요. 자동 모드는 UTF-8을 먼저 시도하고 실패하면 EUC-KR로 읽습니다.
참고
이 결과는 참고용입니다. 실제 업무 문서의 규격·보안 정책은 소속 기관의 안내를 우선하세요.