CSV ⇄ JSON

무료 양방향 변환기 · 로그인 불필요 · 브라우저에서 실행
입력 — CSV
출력 — JSON

    

CSV to JSON 변환 방법

CSV(쉼표로 구분된 값)와 JSON(JavaScript Object Notation)은 가장 일반적인 데이터 교환 형식 두 가지예요. CSV는 간결하고 스프레드시트에 친화적이며, JSON은 계층적이고 웹 API의 기본 형식이에요. 이 도구를 사용하면 브라우저에서 완전히 두 형식 사이를 즉시 변환할 수 있어요.

CSV 형식 (RFC 4180)

공식 CSV 사양(RFC 4180)은 이 변환기가 정확히 따르는 다음 규칙을 정의해요:

  • 필드는 구분자(기본값: 쉼표)로 구분돼요. 자동 감지 옵션은 데이터를 확인하고 올바른 구분자를 선택해요.
  • 구분자, 큰따옴표, 줄 바꿈이 포함된 필드는 큰따옴표로 감싸야 해요.
  • 따옴표로 감싼 필드 내의 큰따옴표는 연속된 두 개의 큰따옴표("")로 표현해요.
  • 첫 번째 행은 일반적으로 열 이름을 지정하는 헤더 행이에요.
  • 행은 CRLF 또는 LF 줄 끝으로 구분돼요 — 둘 다 지원해요.

타입 추론

타입 추론이 활성화되면(기본값), 문자열 값이 자동으로 네이티브 JSON 타입으로 변환돼요:

  • "42"42 (숫자)
  • "3.14"3.14 (숫자)
  • "true" / "false"true / false (불리언)
  • "" 또는 "null"null
  • 그 외 모든 값은 문자열로 유지돼요.

01234처럼 우편번호 열이 "01234"로 유지되어야 할 때(즉 1234로 변환되지 않아야 할 때)는 타입 추론을 꺼주세요.

점 표기 키 → 중첩 객체

점 키 확장을 활성화하면 address.city 같은 헤더가 중첩된 JSON 구조 {"address": {"city": "..."}}로 변환돼요. 중첩 객체를 기대하는 계층형 API를 위한 데이터 준비에 유용해요.

JSON → CSV: 중첩 객체 평탄화

JSON을 CSV로 변환할 때 중첩 객체는 점 표기 키를 사용해 자동으로 평탄화돼요. {"user": {"name": "Alice", "age": 30}} 객체는 user.nameuser.age 두 열이 돼요.

키보드 단축키

  • Ctrl/Cmd+Enter — 지금 변환
  • Ctrl/Cmd+D — 출력 다운로드
  • Ctrl/Cmd+Shift+C — 출력 복사

자주 발생하는 CSV 문제

  • 값 내 쉼표: 데이터에 쉼표가 포함된 경우(예: "홍, 길동"), 해당 필드는 따옴표로 감싸야 해요. 이 변환기는 RFC 4180에 따라 이를 올바르게 처리해요.
  • 열 수 불일치: 일부 내보내기 도구는 끝 필드가 누락된 행을 생성해요. 이 변환기는 누락된 값을 null로 채우고 영향 받는 행을 알려줘요.
  • BOM 문자: Excel에서 내보낸 파일은 UTF-8 BOM()으로 시작할 수 있어요. 이 변환기는 자동으로 제거해요.
  • 인코딩: 업로드된 파일은 UTF-8로 읽혀요. CSV가 다른 인코딩(예: Latin-1)을 사용한다면 먼저 UTF-8로 변환해 주세요.
  • 큰 파일: 5 MB를 초과하는 파일은 미리보기 테이블을 느리게 할 수 있어요. 변환기는 처리하지만 미리보기를 첫 50행으로 제한해요.

CSV vs JSON: 언제 어떤 것을 사용할까요

CSV를 사용하는 경우: 비기술 사용자와 표 형식 데이터를 공유할 때, 스프레드시트에 가져올 때, 열 이름이 고정된 큰 평면 데이터셋을 다룰 때.

JSON을 사용하는 경우: 웹 API와 작업할 때, 계층적 또는 중첩 데이터를 저장할 때, JavaScript/Node.js/Python 스크립트를 사용할 때, 값에 쉼표나 특수 문자가 포함될 수 있을 때.

자주 묻는 질문

아니요. 모든 변환은 JavaScript를 사용해 브라우저 내에서 완전히 이루어져요. CSV 또는 JSON 데이터는 절대 기기를 벗어나지 않아요. 브라우저의 네트워크 탭을 확인해 보면 변환 중 외부 요청이 0건임을 확인할 수 있어요.
변환기는 처음 5행을 샘플링하고 쉼표, 세미콜론, 탭, 파이프의 출현 횟수를 세요. 행 전체에서 가장 일관되게 나타나는 문자(특히 헤더에서)가 구분자로 선택돼요. 언제든 수동으로 변경할 수 있어요.
네. 파서는 RFC 4180을 완전히 준수해요. 큰따옴표로 감싼 필드에는 쉼표, 내장된 줄 바꿈, 이스케이프된 큰따옴표(연속된 두 개의 큰따옴표는 하나의 리터럴 따옴표를 나타냄)를 포함할 수 있어요. Excel 내보내기와 여러 줄 주소 필드를 올바르게 처리해요.
객체 배열(기본값)은 헤더 행을 키로 사용해요: [{"name":"Alice","age":30}]. 대부분의 API와 라이브러리가 기대하는 형식이에요. 배열의 배열은 원시 행을 유지해요: [["name","age"],["Alice","30"]], 데이터 그리드와 행렬 연산에 유용해요.
Excel 셀을 선택하고 Ctrl+C를 누르세요(탭으로 구분된 값으로 복사돼요). 입력창에 붙여넣으면 자동 감지 기능이 탭 구분자를 자동으로 인식해요. 또는 Excel 파일을 CSV로 저장(파일 → 다른 이름으로 저장 → CSV)하고 업로드 버튼으로 업로드할 수도 있어요.
강제적인 제한은 없지만 5 MB 이상에서 브라우저가 느려질 수 있어요. 해당 기준치를 초과하면 경고가 표시돼요. 실시간 테이블 미리보기는 성능을 위해 항상 첫 50행으로 제한돼요. 전체 변환 출력은 항상 완전히 제공돼요.