~ / developer / json-csv-converter

📊 JSON ↔ CSV 변환기

JSON 배열을 엑셀에서 열 수 있는 CSV로, CSV를 JSON으로 바꿔요. 쉼표·따옴표·줄바꿈이 섞인 값도 규칙대로 처리하고, 결과를 표로 미리 보여줘요.

options
작업
구분자
JSON → CSV
CSV → JSON
output · CSV
표 미리보기 (처음 20행)

사용법

  1. 위쪽에서 JSON → CSV 또는 CSV → JSON을 고르고 입력란에 붙여넣으세요. 파일 열기를 누르거나 파일을 입력란에 끌어다 놓아도 돼요. 입력하는 즉시 결과와 표 미리보기가 바뀌어요.
  2. JSON → CSV에서는 구분자(쉼표·세미콜론·탭·파이프)와 중첩 객체를 address.city처럼 펼칠지 고르세요. 결과를 엑셀에서 열 거라면 ⬇ .csv로 내려받으세요. BOM 옵션이 켜져 있으면 한글이 깨지지 않아요.
  3. CSV → JSON에서는 첫 줄이 머리글인지, 숫자·true/false를 진짜 타입으로 바꿀지 고르세요. 구분자는 "자동"이면 쉼표·탭·세미콜론·파이프 중에서 알아서 찾아요.
  4. ↑ 결과를 입력으로를 누르면 방향이 뒤집혀서, JSON → CSV → JSON 왕복이 제대로 되는지 바로 확인할 수 있어요.

JSON을 CSV로 바꾸는 규칙

CSV는 2차원 표라서, 객체 배열([{…}, {…}])의 객체 하나가 한 행, 키 하나가 한 열이 돼요. 객체마다 키가 달라도 괜찮아요. 모든 객체의 키를 처음 나온 순서대로 모은 합집합을 머리글로 쓰고, 없는 칸은 비워 둬요.

JSON 값CSV 칸설명
{"address": {"city": "서울"}}address.city 열에 서울중첩 객체 펼치기 (점 표기)
{"tags": ["a", "b"]}["a","b"]배열 → JSON 문자열 (옵션)
{"tags": ["a", "b"]}tags.0=a, tags.1=b배열 옵션을 끄면 번호로 펼침
null · 키 없음(빈 칸)CSV에는 null이 따로 없어요
true · 3.14true · 3.14글자 그대로
{"data": [ … ]}data 배열을 표로객체 배열을 감싼 응답은 자동으로 안쪽 배열 사용

API 응답처럼 {"data": [...]}로 감싼 JSON도 안쪽 객체 배열을 찾아서 바꿔 줘요. 한 줄에 객체 하나씩 쓴 JSON Lines(NDJSON)도 읽어요.

CSV 따옴표 규칙 (RFC 4180)

CSV에는 공식 표준이 사실상 하나(RFC 4180)뿐이고 규칙도 단순해요. 이 도구는 이 규칙대로 쓰고 읽어요.

엑셀에서 CSV 한글이 깨질 때

엑셀(특히 Windows)은 CSV 파일 맨 앞에 BOM(EF BB BF, 이 파일이 UTF-8이라는 표시)이 없으면 한국어 Windows 기본 인코딩(CP949)으로 읽어서 한글이 깨져요. "다운로드 파일에 BOM 붙이기"를 켜 두면 이 문제가 사라져요. 반대로 엑셀에서 "CSV(쉼표로 분리)"로 저장한 파일은 CP949인 경우가 많은데, 이 도구에서 파일 열기로 열면 UTF-8로 안 읽힐 때 EUC-KR(CP949)로 다시 읽어요.

유럽식 엑셀처럼 소수점에 쉼표를 쓰는 환경에서는 구분자로 세미콜론을 써야 열이 제대로 나뉘어요. 탭 구분(TSV)은 복사해서 구글 시트·엑셀 셀에 바로 붙여넣을 때 편해요.

CSV → JSON 타입 추론

CSV의 모든 칸은 원래 글자예요. "숫자·true/false·null 자동 변환"을 켜면 31 → 숫자 31, true → 불리언, 빈 칸 → null로 바꿔요. 단, 0으로 시작하는 값(전화번호 01012345678, 우편번호 04524)과 2⁵³을 넘는 큰 정수는 정보가 사라지지 않도록 글자로 둬요. "점 키를 중첩 객체로"를 켜면 address.city 같은 열이 {"address": {"city": …}}로 되돌아가요.

모든 변환은 브라우저 안에서만 이뤄지고 파일과 입력값은 서버로 전송되지 않아요. 엑셀에서 =·+·-·@로 시작하는 칸은 수식으로 실행될 수 있으니(CSV 인젝션), 남이 만든 데이터를 엑셀로 열 때는 주의하세요.

자주 묻는 질문

JSON을 엑셀 파일로 바꾸려면 어떻게 하나요?
JSON → CSV로 바꾼 뒤 ⬇ .csv로 내려받아 엑셀에서 열면 돼요. "다운로드 파일에 BOM 붙이기"가 켜져 있어야 한글이 깨지지 않아요. 엑셀에서 다른 이름으로 저장 → .xlsx를 고르면 엑셀 파일이 돼요.
CSV를 엑셀에서 열면 한글이 깨져요.
엑셀은 BOM이 없는 UTF-8 CSV를 CP949로 읽어서 한글이 깨져요. 이 도구의 BOM 옵션을 켜고 다시 내려받거나, 엑셀의 데이터 → 텍스트/CSV 가져오기에서 파일 원본을 "65001: 유니코드(UTF-8)"로 골라 여세요.
중첩된 JSON은 CSV로 어떻게 바뀌나요?
"중첩 객체 펼치기"를 켜면 {"address": {"city": "서울"}}가 address.city 열이 돼요. 배열은 ["a","b"] 같은 JSON 문자열로 한 칸에 넣거나, 옵션을 끄면 tags.0, tags.1처럼 번호 열로 펼쳐요. CSV → JSON에서 "점 키를 중첩 객체로"를 켜면 다시 원래 모양으로 돌아가요.
값에 쉼표나 줄바꿈이 있으면 어떻게 되나요?
RFC 4180 규칙대로 그 칸을 큰따옴표로 감싸고, 안에 있는 큰따옴표는 두 번("")으로 바꿔요. 읽을 때도 따옴표 안의 쉼표·줄바꿈은 칸을 나누지 않아요.
전화번호 앞의 0이 사라져요.
CSV → JSON의 자동 타입 변환은 0으로 시작하는 값을 숫자로 바꾸지 않아서 이 도구에서는 0이 남아요. 엑셀에서 CSV를 열 때 0이 사라지는 건 엑셀이 숫자로 해석하기 때문이라, 엑셀의 텍스트/CSV 가져오기에서 그 열을 "텍스트"로 지정해야 해요.
파일이 서버에 올라가나요?
아니요. 파일 읽기와 변환, 다운로드 파일 만들기까지 모두 브라우저 안에서 처리해요. 회사 데이터나 개인정보가 들어 있는 CSV도 밖으로 나가지 않아요.

이 도구와 함께 보면 좋은 글

관련 도구

더 둘러보기

💻 개발자 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →