CSV→JSON 변환기

CSV 파일을 JSON 배열(객체 배열)로 변환합니다. 구분자와 첫 행을 헤더로 사용할지 여부를 지정할 수 있으며, 변환 결과는 복사・다운로드할 수 있습니다. 모든 처리는 브라우저 내에서 이루어지며 서버로 전송되지 않습니다.

구분자
첫 행을 헤더로 사용
들여쓰기하여 표시


            
            복사했습니다!
            
          

CSV를 입력하면 여기에 JSON이 표시됩니다.

CSV 행과 JSON 객체의 대응 관계

CSV의 한 행 name,age,city
변환된 JSON 객체 {"name": "...", "age": "...", "city": "..."}

첫 행을 헤더로 사용하면, 두 번째 행부터 각 행이 헤더의 열 이름을 키로 하는 객체로 변환됩니다.

CSV→JSON 변환이란

CSV→JSON 변환이란 쉼표로 구분된 CSV 데이터를 프로그램에서 다루기 쉬운 JSON 배열, 곧 객체의 배열로 바꾸는 처리입니다. 큰따옴표로 둘러싸인 셀 안의 쉼표·줄바꿈·이스케이프된 따옴표("")까지 처리하는 RFC 4180 준거 파서로 읽어 들이므로, 엑셀 등에서 내보낸 까다로운 CSV도 흐트러지지 않게 변환할 수 있습니다.

변환할 때에는 첫 행을 머리글 행으로 다루고, 둘째 행부터의 각 행을 「머리글 이름: 값」 형태의 객체로 바꿉니다. 처리는 모두 브라우저 안의 자바스크립트로 끝나므로, 입력한 CSV의 내용이 서버로 전송되는 일은 없습니다.

CSV→JSON 변환 사용법

  1. CSV를 입력합니다 텍스트 영역에 CSV를 붙여 넣거나 직접 입력합니다. 수중에 데이터가 없다면 샘플 버튼으로 예시를 불러올 수 있습니다.
  2. 구분 문자를 고릅니다 구분 문자 설정에서 쉼표와 탭 가운데 어느 쪽을 쓰는 데이터인지 고릅니다. TSV 파일이라면 탭을 선택합니다.
  3. 머리글 행의 처리를 정합니다 첫 행을 머리글로 삼는 설정을 켜면, 첫 행의 값이 JSON 객체의 키 이름으로 쓰입니다.
  4. 표시 형식을 고릅니다 들여쓰기 표시를 전환하여, 읽기 좋은 들여쓰기가 붙은 JSON과 공백을 없앤 JSON 가운데에서 고를 수 있습니다.
  5. 결과를 복사합니다 변환된 JSON은 자동으로 화면에 표시됩니다. 복사 버튼으로 클립보드에 담아 그대로 쓸 수 있습니다.

더 잘 활용하기 위한 팁

  • "첫 행을 헤더로 사용"을 활성화하면 첫 행의 값이 JSON 객체의 키 이름으로 사용됩니다. 비활성화하면 col1, col2… 와 같은 순번 키가 됩니다.
  • 헤더에 빈 칸이나 중복된 열 이름이 있으면 해당 열만 자동으로 col{열 번호} 키로 대체되어 값 손실을 방지합니다.
  • 자매 도구인 "JSON→CSV 변환"과 함께 사용하면 CSV와 JSON을 몇 번이든 상호 변환할 수 있습니다.
  • 큰따옴표로 둘러싸인 셀 안의 쉼표・줄바꿈・이스케이프된 인용부호("")까지 처리하는 RFC 4180 준수 파서를 사용하므로, Excel 등에서 내보낸 복잡한 CSV도 정확하게 변환됩니다.

CSV→JSON 변환의 활용 상황

API 시험용 데이터 만들기

스프레드시트에서 내보낸 CSV를, API의 동작 확인에 쓸 JSON 페이로드로 재빨리 바꿀 수 있습니다.

NoSQL 데이터베이스 투입 데이터 준비

몽고DB 같은 문서 지향 데이터베이스는 JSON 형식의 데이터를 다루므로, 스프레드시트로 만든 목록을 그대로 투입용 데이터로 바꿀 수 있습니다.

프런트엔드의 목업 데이터 만들기

화면의 임시 표시나 시험에 쓸 JSON 배열을, 엑셀로 만든 목록에서 손쉽게 마련할 수 있습니다.

스크립트를 쓰지 않는 일회성 데이터 변환

변환용 코드를 그 자리에서 쓸 만큼은 아닌, 한 번뿐인 자잘한 CSV→JSON 변환에도 가볍게 쓸 수 있습니다.

용어집

CSV
Comma-Separated Values의 줄임말로, 값을 쉼표로 구분하여 표 형식 데이터를 나타내는 형식입니다. 스프레드시트에서 읽고 쓰는 데 널리 쓰입니다.
JSON
JavaScript Object Notation의 줄임말로, 키와 값의 짝을 중심으로 데이터를 나타내는 가벼운 형식입니다. 많은 프로그래밍 언어와 API가 표준으로 다룹니다.
TSV
Tab-Separated Values의 줄임말로, 값을 탭 문자로 구분하여 표 형식 데이터를 나타내는 형식입니다. 값에 쉼표가 들어 있어도 CSV보다 구분이 모호해지기 어렵다는 특징이 있습니다.
RFC 4180
CSV 파일의 일반적인 서식을 정한 규격입니다. 큰따옴표로 둘러싼 셀 안의 쉼표·줄바꿈·따옴표를 다루는 방식 등이 규정되어 있습니다.
머리글 행
CSV의 첫 행에 놓이는, 각 열의 이름을 나타내는 행입니다. JSON으로 바꿀 때 이 행의 값이 객체의 키 이름으로 쓰입니다.
이스케이프
CSV 안에서 큰따옴표 자체를 값으로 넣고 싶을 때, 따옴표를 두 번 겹쳐("") 나타내는 처리입니다. 파서는 이를 하나의 큰따옴표로 되돌립니다.

자주 묻는 질문

기본적으로 첫 행을 헤더로 취급하여, 두 번째 행부터 각 행을 {"헤더명": "값", ...} 형태의 객체로 변환하고, 이를 배열로 모은 JSON(객체 배열)을 출력합니다. API 응답이나 NoSQL 데이터베이스에 데이터를 입력할 때 자주 사용되는 형식입니다.

네. "구분자"에서 "탭"을 선택하면 TSV 파일도 CSV와 동일하게 JSON으로 변환할 수 있습니다.

네, CSV의 모든 값은 텍스트로 취급되므로 숫자나 불리언처럼 보이는 값도 JSON에서는 문자열("123"이나 "true" 등)로 출력됩니다. 숫자로 다루고 싶다면 변환 후 JSON 쪽에서 형 변환을 해주세요.

아니요. 변환 처리는 모두 브라우저 내 JavaScript에서 이루어지며, 입력한 CSV 내용이 서버로 전송되는 일은 없습니다. 개인정보가 포함된 데이터도 안심하고 사용할 수 있습니다.
툴군

여담이지만 ― API가 CSV보다 JSON을 선호하는 이유

CSV는 표 형식 데이터를 간단하게 표현할 수 있지만, 배열이나 중첩 객체 같은 계층 구조는 표현할 수 없다는 제약이 있습니다. 대부분의 REST API 응답이 JSON 형식을 채택하는 이유는, 하나의 레코드 안에 배열과 객체를 자유롭게 담을 수 있어 CSV로는 표현할 수 없는 복잡한 데이터 구조도 그대로 송수신할 수 있기 때문입니다.

한편 CSV에는 "Excel이나 스프레드시트로 바로 열 수 있다", "한 행이 하나의 레코드라 사람이 눈으로 확인하기 쉽다"는 버리기 어려운 장점이 있습니다. 실무에서는 "집계・확인은 CSV, 시스템 간 연계는 JSON"이라는 역할 분담이 자리 잡았으며, 이 도구와 같은 상호 변환 수요가 꾸준히 존재하는 이유입니다.

JSON(JavaScript Object Notation)이라는 이름에도 불구하고, 현재는 JavaScript뿐 아니라 거의 모든 언어에서 표준 데이터 형식으로 지원됩니다. 2001년 Douglas Crockford가 이 규격을 공개한 이후, 특정 언어에 의존하지 않는 최소한의 데이터 표현 방식으로 의도적으로 설계된 것이 이렇게 널리 보급된 큰 이유입니다.