CSV ↔ JSON 변환기
표 형태의 CSV 데이터를 JSON 객체 배열로 바꾸거나, JSON 배열을 다시 CSV로 펼칩니다 — 전부 브라우저 안에서 처리되므로 이름·이메일·내부 데이터가 담긴 내보내기 파일도 기기 밖으로 나가지 않습니다. CSV 쪽은 쉼표로 단순 분할하는 방식이 아니라 진짜 상태 기계 파서를 사용합니다: 따옴표로 감싼 필드에는 구분자와 줄바꿈까지 들어갈 수 있고, 겹따옴표("")는 원래 문자로 복원되며, LF와 CRLF 줄끝을 모두 허용합니다. 첫 행은 헤더로 읽고, 짧은 행은 빈 문자열로 채웁니다. 반대 방향에서는 JSON 객체 배열이 모든 객체 키의 합집합을 열로 갖는 CSV가 되므로, 필드 구성이 들쭉날쭉한 레코드도 가지런히 정렬됩니다. 구분자·따옴표·줄바꿈이 든 값은 자동으로 따옴표 처리·이스케이프되고, 중첩 객체나 배열은 버려지는 대신 JSON 문자열로 직렬화됩니다. 구분자 선택(쉼표·세미콜론·탭)은 양방향 모두에 적용됩니다 — 여러 유럽 로캘의 Excel이 세미콜론 구분 파일로 내보내기 때문에 유용합니다.
사용법
- 방향을 선택하세요: CSV → JSON 또는 JSON → CSV.
- 데이터가 쓰는 구분자를 고르세요 — 쉼표, 세미콜론, 탭. 유럽 로캘의 Excel은 세미콜론으로 내보내는 경우가 많습니다.
- 입력란에 데이터를 붙여넣으면 입력과 동시에 변환됩니다.
- 입력을 해석할 수 없으면 — 예: 객체 배열이 아닌 JSON — 출력 대신 오류 메시지가 표시됩니다.
- 복사 버튼으로 결과를 복사하세요.
자주 묻는 질문
- 어떤 CSV 형식을 기대하나요?
- 첫 행을 헤더로 읽고 이후 각 행이 객체 하나가 됩니다. 필드를 큰따옴표로 감싸면 구분자나 줄바꿈을 담을 수 있고, 따옴표 안의 따옴표는 두 번 써서("") 이스케이프합니다. LF·CRLF 줄끝 모두 동작하며, 헤더보다 짧은 행은 빈 문자열로 채워집니다.
- 어떤 JSON이 CSV로 변환되나요?
- 최상위가 객체 배열이어야 합니다. 열은 모든 객체 키의 합집합이라 필드가 서로 달라도 정렬되며, 없는 값은 빈 셀이 됩니다. 중첩 객체·배열은 버려지지 않고 JSON 문자열로 기록되고, null은 빈 셀이 됩니다.
- 숫자와 불리언도 변환되나요?
- CSV에는 타입이 없어서 CSV → JSON에서는 모든 값을 일부러 문자열로 유지합니다. 우편번호·전화번호·ID의 앞자리 0이 사라지는 것을 막기 위해서입니다. JSON → CSV에서는 숫자와 불리언이 그대로 텍스트로 기록됩니다.
- 헤더가 중복되거나 비어 있으면?
- JSON 객체 키는 유일해야 하므로 두 열이 같은 헤더를 쓰면 가장 오른쪽 열이 남습니다. 빈 헤더는 ""라는 키가 됩니다 — 모든 열을 보존해야 한다면 변환 전에 헤더 이름을 바꾸세요.
- 데이터가 업로드되나요? 크기 제한은 있나요?
- 아무것도 브라우저 밖으로 나가지 않습니다. 파싱은 로컬에서 실행되고, 입력은 새로고침 후에도 남도록 브라우저 로컬 스토리지에만 보관됩니다. 크기 제한은 없지만 키 입력마다 변환이 다시 실행되므로 수 MB가 넘는 데이터는 타이핑이 느려질 수 있습니다. 큰 데이터는 한 번에 붙여넣으세요.
이 주제의 가이드
관련 도구
엑셀(XLSX) → CSV · JSON · 마크다운 변환
브라우저에서 .xlsx 통합 문서를 열어 원하는 시트를 CSV·JSON·마크다운 표로 내보냅니다. 파일은 기기를 벗어나지 않습니다.
CSV → 엑셀(XLSX) 변환기
CSV·TSV를 브라우저에서 진짜 .xlsx 파일로 변환합니다. 앞자리 0, 긴 ID, SEPT1 같은 코드가 입력한 그대로 유지됩니다.
CSV → HTML / Markdown / JSON 테이블
CSV를 HTML `<table>`·마크다운 테이블·JSON 객체 배열로 변환 — 구분자 자동 감지.
JSON to Kotlin 데이터 클래스 변환기
JSON 객체를 타입이 지정된 프로퍼티가 포함된 Kotlin 데이터 클래스로 브라우저에서 변환합니다.
JSON Lines (NDJSON) 뷰어
`.jsonl`/`.ndjson` 파일 붙여넣기·드롭 → 레코드 테이블 보기, `field:value`로 필터, 유지할 컬럼 선택, JSON/CSV 재출력.
고정폭 텍스트 → CSV / JSON 파서
고정폭/고정 열 텍스트를 열 너비로 잘라 필드로 나누고 CSV 또는 JSON으로 내보냅니다. 브라우저에서 동작합니다.