데이터·개발

CSV ↔ JSON 변환기

CSV와 JSON 데이터를 양방향으로 변환하고 표 형태로 미리 확인합니다.

직접 실행하는 예제와 결과 해석 보기 ↓
브라우저 실행 데이터 비저장 무료
변환 방향
CSV 입력
0자
JSON 결과

Ctrl + Enter를 누르면 기본 작업을 실행합니다.

CSV & JSON CONVERTER

표 데이터와 JSON 구조를 필요한 방향으로 안전하게 변환합니다.

쉼표뿐 아니라 탭·세미콜론·파이프 구분자를 인식하고 따옴표 안의 줄바꿈과 구분자를 보존합니다. 첫 행을 헤더로 사용할지, 숫자와 불리언 값을 자동 변환할지 선택할 수 있으며 결과를 표로 미리 확인한 뒤 복사하거나 파일로 내려받을 수 있습니다.

01

사용 방법

입력부터 결과 활용까지 네 단계로 진행합니다.

  1. 1변환 방향 선택

    CSV → JSON 또는 JSON → CSV를 선택합니다.

  2. 2데이터 입력

    원본 데이터를 붙여넣고 구분자와 헤더 기준을 정합니다.

  3. 3변환·검증

    문법을 확인하면서 결과와 표 미리보기를 만듭니다.

  4. 4결과 활용

    변환 결과를 복사하거나 JSON·CSV 파일로 저장합니다.

데이터 구조

CSV의 행과 열을 JSON의 배열과 객체 구조로 옮깁니다.

CSV는 행과 열로 데이터를 표현하고 JSON은 배열과 객체로 구조를 표현합니다. 첫 행을 헤더로 사용하면 각 CSV 행은 헤더 이름을 키로 가진 JSON 객체가 됩니다. 헤더를 사용하지 않으면 행마다 배열로 변환되어 원래 열 순서를 그대로 유지합니다.

따옴표 처리구분자·줄바꿈·큰따옴표가 포함된 필드는 CSV 규칙에 맞춰 처리합니다.

값 형식 보존기본값은 모든 CSV 값을 문자열로 유지해 우편번호와 앞자리 0을 보호합니다.

중첩 JSON객체나 배열이 셀 값에 들어가면 JSON 문자열 형태로 CSV에 기록합니다.

예제로 확인하기

표를 옮길 때 숫자처럼 보이는 값부터 확인하세요

CSV에는 열마다 숫자·문자열 같은 자료형을 저장하는 공통 규칙이 없습니다. 우편번호와 상품 코드는 숫자처럼 보여도 문자열로 유지해야 할 수 있습니다. 툴하루는 기본적으로 모든 CSV 값을 문자열로 옮기고, 자동 변환을 켰을 때만 자료형을 추정합니다.

앞자리 0, 수량, 불리언을 함께 변환하기

code,qty,active
00123,2,true

자동 변환 끔

[{"code":"00123","qty":"2","active":"true"}]

자동 변환 켬

[{"code":"00123","qty":2,"active":true}]

앞자리 0이 있는 00123은 자동 변환을 켜도 문자열로 유지합니다. 소문자 true, false, null은 자료형으로 바뀝니다. JavaScript의 안전한 정수 범위를 넘는 값은 문자열로 남기지만, 소수의 모든 자릿수를 보존해야 한다면 자동 변환을 끄세요.

중복 열 이름도 각각의 값을 남깁니다

name,name,name_2
노트,펜,지우개

→ [{"name":"노트","name_2":"펜","name_2_2":"지우개"}]

헤더는 앞뒤 공백을 제거한 뒤 왼쪽부터 이름을 배정합니다. 이미 사용한 이름이면 숫자 접미사를 붙이고 다시 중복을 확인합니다. 빈 이름은 column_1 같은 위치 이름으로 대체됩니다. 원래 이름을 엄격하게 유지해야 한다면 변환 전에 헤더를 직접 정리하세요.

쉼표와 큰따옴표가 들어 있는 셀

item,note
노트,"파랑, ""한정판"""

→ [{"item":"노트","note":"파랑, \"한정판\""}]

셀 안의 쉼표는 셀 전체를 큰따옴표로 감싸고, 내부 큰따옴표는 두 번 씁니다. 따옴표 안의 줄바꿈도 같은 셀로 읽습니다. 결과는 읽기 편하게 들여쓰기되며, 위 예시의 자료값은 같습니다.

중첩 JSON은 한 셀의 문자열로 저장됩니다

[{"id":1,"tags":["a","b"],"note":null}]
→
id,tags,note
1,"[""a"",""b""]",

배열을 여러 열로 펼치지 않습니다. 다시 CSV → JSON으로 바꿔도 tags 셀은 배열이 아닌 문자열이고, 빈 셀만으로 원래 null·누락·빈 문자열을 구분할 수 없습니다. 왕복 변환이 원래 자료형을 모두 복원하는 것은 아닙니다.

데이터 전달 전 점검

행 수·열 이름·원본 자료형을 함께 확인하세요

  1. 열이 하나로 보이면 구분자를 바꿔보세요. 자동 감지는 첫 레코드의 따옴표 밖 구분자 수를 비교합니다. 제목 행이나 혼합 구분자가 있으면 잘못 추정할 수 있으므로 쉼표·탭·세미콜론·파이프를 직접 선택하세요.
  2. 행마다 열 수가 다르면 누락 값을 확인하세요. CSV → JSON은 가장 긴 행에 맞추며 부족한 셀은 빈 문자열로 채웁니다. 헤더보다 긴 행에는 추가 위치 이름을 만듭니다. 불균일한 열이 의도된 것인지 먼저 확인하세요.
  3. 미리보기는 전체 데이터가 아닙니다. 표는 최대 20행·12열을 보여주며, 변환 결과와 다운로드에는 전체 변환 데이터가 들어갑니다. 입력 한도는 JavaScript 문자열 길이 기준 500만 단위입니다.
  4. 스프레드시트에서 다시 확인하세요. CSV 다운로드는 UTF-8 BOM과 CRLF 행 구분을 사용합니다. 프로그램이 날짜·긴 숫자·수식을 다시 해석할 수 있습니다. 특히 =로 시작하는 셀은 큰따옴표로 감싸도 수식으로 실행될 수 있어, 외부 데이터를 열 때는 가져오기 설정과 셀 형식을 확인하세요.

JSON 문법 오류는 JSON 포매터에서 먼저 확인할 수 있습니다. 이 변환기는 CSV의 모든 문법 위반을 검출하는 엄격한 검증기는 아니므로, 원본을 별도로 보관하고 변환 후 주요 레코드를 대조하세요.

쉼표·따옴표·행 구분 참고: RFC 4180. 탭 등 추가 구분자와 자료형 추정, 중복 헤더 처리 기준은 툴하루의 구현입니다.

예제를 실행하면 작업 영역의 입력과 설정이 바뀝니다. 내용·동작 확인: · 툴하루

02

대표적인 사용 사례

실제 작업에서는 이렇게 활용할 수 있습니다.

SHEET

스프레드시트 데이터 변환

CSV로 내보낸 표를 API와 코드에서 사용할 JSON으로 바꿉니다.

API

API 응답을 CSV로 저장

객체 배열 형태의 JSON을 열 구조로 펼쳐 CSV 파일로 만듭니다.

CHECK

구분자와 열 구조 확인

가져오기 전에 자동 감지된 구분자와 행·열 미리보기를 검토합니다.

03

자주 묻는 질문

사용 전 알아두면 좋은 기준을 정리했습니다.

쉼표가 들어 있는 CSV 필드도 변환되나요?

네. 필드가 큰따옴표로 감싸져 있으면 내부의 쉼표와 줄바꿈을 값으로 유지합니다. 필드 안의 큰따옴표는 두 번 연속 작성된 표준 CSV 형식을 지원합니다.

CSV 숫자가 문자열로 변환되는 이유는 무엇인가요?

00123 같은 코드와 긴 식별자의 값이 달라지는 것을 막기 위해 기본적으로 문자열을 유지합니다. 필요한 경우 숫자·불리언 자동 변환 옵션을 켤 수 있습니다.

중첩된 JSON 객체도 CSV로 바꿀 수 있나요?

최상위 배열의 각 객체를 한 행으로 변환하며 셀 안의 중첩 객체와 배열은 JSON 문자열로 기록합니다. 중첩 키를 여러 열로 자동 펼치지는 않습니다.

입력 데이터가 서버로 전송되나요?

아니요. CSV 파싱, JSON 변환과 미리보기는 현재 브라우저에서 실행되며 입력값과 결과를 툴하루 서버로 전송하거나 저장하지 않습니다.

RELATED WORKFLOW

표 데이터를 시스템에 전달하는 흐름

1원본 준비CSV·JSON 데이터 확인
2구조 변환헤더와 구분자 기준 적용
3결과 검토미리보기 후 복사·저장