CSV ↔ JSON 변환기 (RFC 4180 호환)
CSV 또는 JSON 붙여넣기. RFC 4180 호환 CSV 파싱(콤마, 이스케이프된 인용, 줄 바꿈 포함 다중 행 값 처리). JSON에서 CSV로 변환은 객체 배열(키를 헤더로) 또는 배열의 배열 양쪽 수용.
[
{
"name": "Alice",
"age": "30",
"city": "Tokyo"
},
{
"name": "Bob",
"age": "25",
"city": "Seoul"
},
{
"name": "Carol",
"age": "42",
"city": "Madrid"
}
]작동 방식
왜 RFC 4180 중요
CSV는 단순해 보이지만 엣지 케이스 있음: 콤마 포함 필드는 인용 필요; 인용 포함 필드는 두 번 인용으로 이스케이프; 인용된 필드는 줄 바꿈 포함 가능. 단순 콤마 분할 파서는 실제 데이터에 깨짐. 본 변환기는 RFC 4180 문법 정확히 구현.
단순 파서는 또한 세미콜론 사용(',' 가 십진 구분자인 유럽 로케일에서 일반적)이나 탭(TSV) Excel 내보내기에 깨짐. 구분자 드롭다운이 모든 네 흔한 변형 처리.
출력용 JSON 모양
객체 배열(헤더 행으로 기본): 각 행이 {열: 값} 됨. 가장 흔한 JSON 모양, 어떤 언어에서도 소비 쉬움.
배열의 배열(헤더 행 OFF): 각 행이 [v1, v2, ...] 됨. 열이 명명되지 않거나 위치 구조 원할 때 유용.
JSON에서 CSV로 가면 본 변환기가 어떤 모양인지 감지. 객체: 모든 행 전반에 고유 키 추출해 헤더로. 배열: 행을 그대로 씀.
흔한 함정
Excel 로케일: 일부 유럽 Excel 설치에서 기본 구분자는 ',' 아닌 ';'. CSV가 가져오기 시 한 거대한 열로 보이면 구분자 드롭다운에서 ;로 전환.
BOM(바이트 순서 마크): 일부 Excel 내보내기가 파일에 U+FEFF 접두. 우리는 통과; 다운스트림 파서 실패 시 첫 3 바이트 제거.
후행 줄 바꿈: '\n'으로 끝나는 CSV가 일부 파서에 빈 마지막 행 추가; 우리는 빈 행 자동 필터.
문자열로 숫자: CSV는 타입 없음 — '42'가 JSON에 문자열 "42" 됨. 타입 값 필요하면 알려진 숫자 열을 강제하는 후처리 단계 실행.
자주 묻는 질문
›콤마 포함 인용 필드 처리?
네 — RFC 4180 인용 완전 지원. "Doe, John"이 단일 필드로 파싱.
›이스케이프된 인용 처리 방법?
RFC 4180당, 인용 필드 내 리터럴 '"'는 '""' (두 인용) 작성. 파서가 올바르게 처리.
›필드에 줄 바꿈 포함 가능?
인용될 때 가능. 인용 내 "line 1\nline 2"는 임베디드 줄 바꿈 있는 한 필드로 처리.
›BOM(UTF-8) 지원?
BOM이 통과. 다운스트림 소비자가 허용 안 하면 CSV에서 첫 3 바이트(EF BB BF) 제거.
›거대 파일은?
브라우저가 몇 MB 문제 없이 처리. 매우 큰 CSV(100MB+)는 워커 있는 Papa Parse 같은 스트리밍 파서 또는 CLI 도구 사용.
›숫자가 숫자로 보존?
CSV → JSON: 모든 값이 문자열(CSV는 타입 없음). JSON → CSV: 숫자가 인용 없는 CSV 셀로. 타입 JSON 도출에 숫자라고 아는 열 후처리.
›왜 본 JSON이 null 대신 빈 문자열?
CSV는 빈 셀을 누락 값으로 표현. 우리는 빈 문자열에 매핑. JSON에 null 도출에 출력 후처리.
›데이터가 전송되나요?
전송되지 않습니다. 변환은 로컬.
관련 도구
최종 업데이트: