CSV ↔ JSON 변환기란
엑셀·스프레드시트에서 흔히 쓰는 CSV(쉼표로 구분된 표 데이터)와 프로그래밍에서 널리 쓰는 JSON(객체 배열)을 서로 바꿔 주는 도구입니다. CSV의 첫 행을 키(헤더)로 삼아 객체 배열 JSON을 만들고, 반대로 JSON 객체 배열을 표 형태의 CSV로 내보냅니다. 입력한 데이터는 브라우저에서만 처리되어 외부로 전송되지 않습니다.
사용법
- 상단에서 CSV → JSON 또는 JSON → CSV 모드를 선택합니다.
- CSV → JSON일 때는 구분자(쉼표·탭·세미콜론)를 데이터에 맞게 고릅니다.
- 입력창에 데이터를 붙여넣고 변환 버튼을 누르면 결과가 표시됩니다.
- 따옴표로 감싼 필드 안의 쉼표·줄바꿈은 자동으로 처리됩니다(RFC4180).
- 결과 오른쪽 위 복사 버튼으로 클립보드에 복사할 수 있습니다.
변환 원리 — 헤더와 행
CSV는 표를 텍스트로 적은 형식입니다. 첫 줄은 보통 열 이름을 담은 헤더이고, 이후 각 줄이 한 행(레코드)입니다. CSV → JSON 변환은 헤더의 각 이름을 키로, 그 아래 행의 값을 값으로 삼아 객체 배열을 만듭니다. 예를 들어 아래 CSV는 다음 JSON이 됩니다.
name,age
홍길동,30
// →
[
{ "name": "홍길동", "age": "30" }
]
반대로 JSON → CSV는 객체 배열의 키를 모아 헤더로 만들고, 각 객체를 한 행으로 풀어냅니다. 헤더 없음 옵션을 켜면 첫 줄을 헤더로 보지 않고 col1, col2 같은 이름을 자동으로 붙입니다.
구분자·따옴표·타입 추론
구분자는 쉼표·탭·세미콜론 중에서 데이터에 맞게 고를 수 있습니다(엑셀에서 셀을 복사하면 보통 탭으로 구분됩니다). 값 안에 쉼표나 줄바꿈이 들어가는 경우를 위해 CSV는 그 값을 큰따옴표로 감싸는 규칙(RFC4180)을 씁니다. 이 도구는 따옴표 안의 쉼표·줄바꿈·이중 따옴표("")를 올바르게 해석하고, JSON을 CSV로 내보낼 때도 같은 규칙으로 안전하게 이스케이프합니다. 타입 추론 옵션을 켜면 "30" 같은 숫자 문자열은 숫자로, "true"/"false"는 불리언으로 바꿉니다. 다만 00123처럼 앞에 0이 붙은 값(우편번호 등)은 문자열로 보존합니다.
주의점·팁
JSON → CSV로 바꿀 때 값이 중첩 객체나 배열이면 표에 계층을 담을 수 없어, 해당 셀에 JSON 문자열로 넣습니다. 객체마다 키가 다른 경우, 전체 객체에서 등장한 키를 모두 모아 헤더로 삼고 없는 값은 빈칸으로 둡니다. 변환한 결과는 복사하거나 파일로 내려받을 수 있습니다.
CSV와 JSON은 데이터를 다루는 두 세계를 잇는 다리 같은 형식입니다. 스프레드시트로 정리한 표를 프로그램에서 쓰려면 JSON으로, 반대로 코드가 만들어 낸 데이터를 사람이 엑셀에서 살펴보려면 CSV로 바꾸는 일이 자주 생깁니다. 이 도구는 그 왕복을 브라우저 안에서 바로 처리하며, 변환한 결과 개수를 알려 주어 행이 빠짐없이 옮겨졌는지 확인할 수 있습니다. 결과는 복사하거나 .json·.csv 파일로 내려받을 수 있고, 입력한 데이터는 외부로 전송되지 않습니다.
자주 묻는 질문
입력한 데이터가 서버로 전송되나요?
아니요. 모든 변환은 브라우저 안에서만 실행되며 입력한 CSV·JSON 데이터는 서버로 전송되거나 저장되지 않습니다.
필드 안에 쉼표나 줄바꿈이 있어도 되나요?
네. RFC4180 방식으로 따옴표로 감싼 필드 안의 쉼표·줄바꿈·따옴표를 올바르게 처리합니다. JSON으로 내보낼 때도 같은 규칙으로 이스케이프됩니다.
엑셀 데이터를 변환할 수 있나요?
엑셀에서 CSV로 저장하거나 셀을 복사한 뒤 붙여넣으면 됩니다. 탭으로 구분된 데이터는 구분자를 탭으로 선택하세요.
타입 추론 옵션은 무엇을 하나요?
CSV의 값을 JSON으로 바꿀 때 숫자 문자열은 숫자로, true·false는 불리언으로 변환합니다. 다만 앞에 0이 붙은 값(예: 우편번호 00123)은 문자열로 보존합니다.
헤더가 없는 CSV도 변환되나요?
네. 헤더 없음 옵션을 켜면 첫 줄을 헤더로 보지 않고 col1, col2 같은 이름을 자동으로 붙여 변환합니다.
중첩된 객체나 배열은 어떻게 되나요?
JSON → CSV 변환 시 중첩 객체나 배열 값은 한 셀 안에 JSON 문자열 형태로 들어갑니다. CSV는 표 형태라 계층 구조를 그대로 담을 수 없기 때문입니다.