전체 도구 ↗
💻 이 도구는 PC에서 더 편하게 쓸 수 있어요 · 코드 복사·붙여넣기 작업용
{ }

CSV → JSON 변환

엑셀·구글 시트에서 복사한 CSV를 코드에 바로 쓰는 JSON 배열로 즉시 변환합니다.

🔒 기기 내 처리⚡ 즉시 변환💸 완전 무료
📄 CSV 입력🔒 서버 전송 없음
쉼표(,)로 구분 · 첫 줄은 헤더(키)
{ } JSON 출력 객체 필드KB
[
  { "name": "Alice", "age": "20" },
  { "name": "Bob",   "age": "25" }
]

← 왼쪽에 CSV를 붙여넣고 변환을 누르면
이 자리에 JSON 배열이 나타나요.

전체 도구 모음 ↗
광고

설명

CSV의 첫 줄을 키로 사용해 각 행을 객체로 만든 JSON 배열로 변환합니다.

광고

관련 도구

CSV to JSON 변환 도구는 스프레드시트나 데이터베이스에서 내보낸 CSV 텍스트를 개발에서 바로 쓸 수 있는 JSON 배열 형태로 변환해줍니다. API 개발, 프론트엔드 목업 데이터 준비, Node.js 스크립트 작성 등에서 CSV를 JSON으로 바꿔야 할 때 코딩 없이 즉시 처리할 수 있습니다. 변환된 JSON은 그대로 복사하거나 파일로 다운로드해 프로젝트에 활용합니다.

사용 방법

왼쪽 입력 영역에 CSV 텍스트를 직접 붙여넣습니다. 첫 행을 헤더로 인식해 각 행을 키-값 쌍의 객체로 변환합니다. 변환 버튼을 누르면 오른쪽(모바일에서는 아래) 출력 영역에 JSON 배열이 나타납니다. 복사 버튼으로 클립보드에 담거나 다운로드 버튼으로 .json 파일로 저장합니다. 컬럼명이 JSON 키가 되므로, 컬럼명에 공백이나 특수문자가 있다면 미리 정리해두는 것이 좋습니다.

이럴 때 유용해요

백엔드 없이 정적 데이터로 프론트엔드를 개발할 때 기획서나 엑셀의 데이터를 JSON으로 빠르게 변환해 목업으로 씁니다. 또한 REST API나 GraphQL의 응답 형식을 설계할 때 실제 데이터를 JSON으로 변환해 구조를 확인하는 용도로도 유용합니다. Firebase, Supabase, MongoDB 같은 NoSQL DB에 CSV 데이터를 초기 적재할 때 JSON으로 변환한 뒤 임포트 도구에 입력하면 편리합니다. 기획자나 데이터 분석가가 개발팀에 데이터 구조를 전달할 때 CSV보다 JSON이 의미 전달이 명확한 경우에도 유용합니다.

알아두면 좋은 점

변환 시 모든 값은 기본적으로 문자열(string)로 처리됩니다. 숫자나 불리언(true/false)이 필요하다면 변환 후 코드에서 타입을 명시적으로 변환(parseInt, parseFloat, Boolean)해야 합니다. 일부 도구는 숫자처럼 보이는 값을 자동으로 number 타입으로 변환하는 옵션을 제공하기도 합니다. CSV의 빈 셀은 JSON에서 빈 문자열("") 또는 null로 처리될 수 있으며, 이 차이가 실제 로직에 영향을 줄 수 있으므로 확인이 필요합니다. 중첩 구조(nested object)가 필요한 JSON이라면 변환 후 수동으로 구조를 재편집해야 합니다.

자주 묻는 질문

CSV에서 숫자 컬럼이 JSON에서도 number 타입으로 변환되나요?
이 변환기는 모든 값을 문자열로 출력합니다. CSV 자체에 타입 정보가 없기 때문입니다. 숫자나 불리언 타입이 필요하다면 변환 후 JavaScript에서 Number(), parseInt(), parseFloat() 등으로 형변환하세요.
헤더가 없는 CSV는 어떻게 변환되나요?
이 변환기는 항상 첫 행을 헤더(키)로 사용합니다. 따라서 헤더가 없는 CSV는 첫 데이터 행이 키로 쓰여 한 행이 줄어듭니다. 헤더가 없다면 변환 전 컬럼명을 담은 헤더 행을 직접 맨 위에 추가해 주세요.
결과 JSON을 바로 JavaScript 코드에서 import해서 쓸 수 있나요?
다운로드한 .json 파일은 ES 모듈에서 'import data from "./data.json" assert { type: "json" }' 또는 Node.js에서 'require("./data.json")'으로 바로 불러올 수 있습니다. 브라우저 환경에서는 fetch()로 로드하거나 번들러(Vite, Webpack)를 통해 임포트합니다.
변환 결과 JSON의 한글이 이스케이프 시퀀스(\uXXXX)로 표시돼요.
JSON 직렬화 시 ASCII 범위를 벗어난 문자를 유니코드 이스케이프로 표현하는 경우입니다. JavaScript JSON.parse()는 두 형식 모두 올바르게 처리하므로 기능상 문제는 없습니다. 사람이 읽기 편한 형태를 원한다면 JSON.stringify(data, null, 2)로 재직렬화하거나 도구의 'ensure_ascii=false' 옵션을 찾아보세요.
CSV 셀 값에 줄바꿈이 포함되어 있으면 어떻게 되나요?
이 변환기는 입력을 먼저 줄 단위로 나눈 뒤 각 줄을 파싱하므로, 큰따옴표로 감싼 셀 안의 줄바꿈은 하나의 값으로 보존되지 않고 별도 행으로 쪼개져 헤더와 어긋난 결과가 나옵니다. 셀 안에 줄바꿈이 필요한 데이터라면, 변환 전 편집기에서 줄바꿈을 공백이나 '\n' 같은 문자로 치환해 셀을 한 줄로 만든 뒤 붙여넣으세요.

개인정보처리방침

CSV → JSON 변환, 이렇게 씁니다

엑셀이나 구글 시트에서 복사한 표, 또는 .csv 파일의 텍스트를 그대로 입력창에 붙여넣으면 즉시 JSON 배열로 바뀝니다. 첫 줄을 헤더(키 이름)로 인식해 각 데이터 행을 하나의 객체로 만들고, 전체를 [ { ... }, { ... } ] 형태의 배열로 묶습니다. 변환 결과는 복사하거나 .json 파일로 내려받아 API 요청 본문, 목업 데이터, 코드 내 상수 등으로 바로 활용할 수 있습니다.

작동 원리 — 헤더와 구분자 처리

변환기는 입력을 줄 단위로 나눈 뒤, 각 줄을 쉼표(,)로 잘라 값을 뽑습니다. 이때 단순히 쉼표로만 자르지 않고, 큰따옴표로 감싼 필드 안의 쉼표는 값의 일부로 보존합니다. 예를 들어 "서울, 강남구" 는 두 칸이 아니라 한 칸으로 처리됩니다. 따옴표 안의 두 개 연속 따옴표("")는 하나의 따옴표로 복원합니다. 다만 입력은 줄 단위로 먼저 나뉘므로, 따옴표로 감싼 셀 의 줄바꿈은 값으로 보존되지 않고 별도 행으로 쪼개집니다(셀 내부 줄바꿈은 미리 치환해 한 줄로 만든 뒤 붙여넣으세요). 헤더 name,age,city 에 데이터 홍길동,30,서울 이 들어오면 {"name":"홍길동","age":"30","city":"서울"} 가 됩니다.

입력 CSV출력 JSON
id,name
1,사과
2,배
[{"id":"1","name":"사과"},{"id":"2","name":"배"}]

모든 값은 문자열로 변환됩니다

이 변환기는 CSV의 모든 값을 문자열로 출력합니다. CSV 자체에는 타입 정보가 없기 때문입니다. 예를 들어 나이 30"30"으로, true"true"로 나옵니다. 숫자나 불리언 타입이 필요하다면 변환 후 코드에서 Number("30"), parseInt, parseFloat처럼 명시적으로 형변환하세요. 오히려 007, +82-10, 앞자리 0이 중요한 우편번호·전화번호 같은 값은 문자열로 그대로 두는 편이 안전합니다.

이럴 때 유용합니다

스프레드시트로 정리한 상품 목록·회원 데이터를 프론트엔드 개발용 목업 JSON으로 바꿀 때, REST API에 여러 건을 한 번에 등록하기 위한 요청 배열을 만들 때, 파이썬·자바스크립트 코드에 넣을 초기 데이터를 준비할 때 자주 씁니다. 또 CSV를 다루는 도구와 JSON만 받는 도구 사이를 이어주는 변환 단계로도 쓰입니다. 모든 처리는 브라우저 안에서만 이뤄지고 서버로 전송되지 않으므로, 고객 명단처럼 민감한 표도 외부 유출 없이 변환할 수 있습니다.

깔끔하게 변환하는 팁

첫째, 헤더 이름에 공백이나 한글이 있어도 키로 쓸 수 있지만, 코드에서 data.name처럼 점 표기로 접근하려면 영문·언더스코어 키가 편합니다. 둘째, 값에 쉼표가 들어가면 반드시 그 필드를 큰따옴표로 감싸세요. 셋째, 마지막 줄에 빈 줄이 남으면 빈 객체가 생길 수 있으니 꼬리 빈 줄은 지웁니다. 넷째, 이 변환기는 쉼표(,)로 구분된 CSV를 기준으로 동작하므로, 탭으로 구분된 TSV라면 편집기에서 탭을 쉼표로 먼저 바꾼 뒤 붙여넣으세요.

자주 묻는 질문

값 안에 쉼표가 있는데 칸이 밀립니다.

해당 필드를 큰따옴표로 감싸야 합니다. 예를 들어 홍길동,"서울, 강남",30 처럼 쓰면 따옴표 안의 쉼표는 무시되어 세 칸으로 올바르게 나뉩니다. 엑셀에서 CSV로 저장하면 이 처리가 자동으로 됩니다.

모든 값이 문자열("30")로 나오는데 숫자로 만들 수 있나요?

이 변환기는 타입 정보가 없는 CSV 특성상 모든 값을 문자열로 출력합니다. 숫자가 필요하면 변환 후 코드에서 Number("30")이나 parseInt로 바꾸면 됩니다. 단, 전화번호나 앞자리 0이 있는 코드는 문자열로 두는 게 안전합니다.

입력한 CSV가 서버에 저장되나요?

아니요. 변환은 전부 브라우저 자바스크립트로만 실행되며 입력한 데이터는 어떤 서버로도 전송·저장되지 않습니다. 페이지를 닫으면 데이터도 사라집니다.

한글이 깨져요.

대부분 원본 CSV 파일의 인코딩이 EUC-KR인 경우입니다. 엑셀에서 "CSV UTF-8" 형식으로 다시 저장하거나, 시트 내용을 직접 복사해 붙여넣으면 UTF-8로 처리되어 깨지지 않습니다.