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 변환 사용법
- CSV를 입력합니다 텍스트 영역에 CSV를 붙여 넣거나 직접 입력합니다. 수중에 데이터가 없다면 샘플 버튼으로 예시를 불러올 수 있습니다.
- 구분 문자를 고릅니다 구분 문자 설정에서 쉼표와 탭 가운데 어느 쪽을 쓰는 데이터인지 고릅니다. TSV 파일이라면 탭을 선택합니다.
- 머리글 행의 처리를 정합니다 첫 행을 머리글로 삼는 설정을 켜면, 첫 행의 값이 JSON 객체의 키 이름으로 쓰입니다.
- 표시 형식을 고릅니다 들여쓰기 표시를 전환하여, 읽기 좋은 들여쓰기가 붙은 JSON과 공백을 없앤 JSON 가운데에서 고를 수 있습니다.
- 결과를 복사합니다 변환된 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 안에서 큰따옴표 자체를 값으로 넣고 싶을 때, 따옴표를 두 번 겹쳐("") 나타내는 처리입니다. 파서는 이를 하나의 큰따옴표로 되돌립니다.
자주 묻는 질문
여담이지만 ― API가 CSV보다 JSON을 선호하는 이유
CSV는 표 형식 데이터를 간단하게 표현할 수 있지만, 배열이나 중첩 객체 같은 계층 구조는 표현할 수 없다는 제약이 있습니다. 대부분의 REST API 응답이 JSON 형식을 채택하는 이유는, 하나의 레코드 안에 배열과 객체를 자유롭게 담을 수 있어 CSV로는 표현할 수 없는 복잡한 데이터 구조도 그대로 송수신할 수 있기 때문입니다.
한편 CSV에는 "Excel이나 스프레드시트로 바로 열 수 있다", "한 행이 하나의 레코드라 사람이 눈으로 확인하기 쉽다"는 버리기 어려운 장점이 있습니다. 실무에서는 "집계・확인은 CSV, 시스템 간 연계는 JSON"이라는 역할 분담이 자리 잡았으며, 이 도구와 같은 상호 변환 수요가 꾸준히 존재하는 이유입니다.
JSON(JavaScript Object Notation)이라는 이름에도 불구하고, 현재는 JavaScript뿐 아니라 거의 모든 언어에서 표준 데이터 형식으로 지원됩니다. 2001년 Douglas Crockford가 이 규격을 공개한 이후, 특정 언어에 의존하지 않는 최소한의 데이터 표현 방식으로 의도적으로 설계된 것이 이렇게 널리 보급된 큰 이유입니다.