JSON ↔ CSV 변환
객체 배열 JSON을 붙여 넣으면 CSV 표로 바꿉니다. 방향을 바꾸면 CSV를 JSON으로 바꿉니다.
입력 · JSON
출력 · CSV
JSON ↔ CSV 변환 사용 방법
- 1입력 칸에 객체 배열 JSON을 붙여 넣거나 「예시 넣기」를 누릅니다. CSV를 넣으려면 방향을 CSV → JSON으로 바꿉니다.
- 2구분자와 다른 옵션을 고르면 결과가 바로 바뀝니다. 「바꾸기」를 누르면 결과를 반대 방향으로 되돌립니다.
- 3「복사」로 결과를 복사하거나 「내려받기」로 엑셀에서 글자가 깨지지 않는 .csv 파일을 저장합니다.
JSON ↔ CSV 변환 옵션
- 방향
- JSON → CSV(기본) 또는 CSV → JSON. 「바꾸기」는 결과를 입력으로 옮기고 방향을 뒤집습니다.
- 구분자
- 쉼표(기본), 세미콜론, 탭, 세로선 가운데 고릅니다. CSV를 읽을 때는 자동 감지가 앞 줄들을 보고 구분자를 고르며, 직접 정할 수도 있습니다.
- 중첩 객체
- 점 경로(기본)는 중첩 객체를 a.b 같은 열로 펼칩니다. JSON 문자열은 객체 전체를 한 칸에 넣습니다. 배열은 항상 JSON 문자열로 씁니다.
- 줄바꿈
- CSV 행의 줄바꿈입니다. CRLF(기본, RFC 4180) 또는 LF.
- 내려받는 파일에 UTF-8 BOM
- 기본으로 켜져 있습니다. 내려받는 .csv 파일 맨 앞에 3바이트 EF BB BF를 붙여 엑셀이 UTF-8로 읽게 합니다. 출력 칸과 「복사」에는 BOM이 들어가지 않습니다.
- 첫 줄은 머리글
- CSV를 읽을 때 기본으로 켜져 있습니다. 첫 줄이 각 객체의 키가 됩니다. 끄면 모든 줄이 배열이 됩니다.
- 숫자 추론
- CSV를 읽을 때 기본으로 꺼져 있어 모든 값이 문자열입니다. 켜면 JSON 숫자 모양으로 적힌 값을 적힌 그대로 숫자로 씁니다. 007 같은 값은 문자열로 남습니다.
이 도구가 쓰는 CSV 형식
CSV에는 하나로 정해진 표준이 없지만, RFC 4180이 대부분의 프로그램이 받아들이는 형식을 설명하고 있고 이 도구는 그것을 따릅니다. 행은 마지막 행까지 CRLF로 끝납니다. 값은 구분자, 큰따옴표, 줄바꿈이 들어 있을 때만 큰따옴표로 감싸고, 값 안의 큰따옴표는 두 번 씁니다. 값 앞뒤의 공백은 값의 일부라서 그대로 둡니다.
열은 키가 처음 나온 순서대로 놓입니다. 뒤 객체에 앞에 없던 키가 있으면 오른쪽에 새 열을 붙이고, 그 키가 없는 행은 빈 칸으로 둡니다.
CSV 읽기
따옴표로 감싼 칸에는 구분자, 큰따옴표, 줄바꿈이 들어갈 수 있습니다. 입력 맨 끝의 줄바꿈은 빈 행을 만들지 않습니다. 따옴표를 열고 닫지 않은 곳이 있으면 읽을 수 있는 만큼 결과를 보여 주고 어느 레코드가 이상한지 알려 줍니다.
내려받는 파일에 BOM을 붙이는 이유
UTF-8 파일에는 바이트 순서 표시가 필요 없고 대부분의 프로그램은 이를 무시합니다. 엑셀은 예외입니다. 표시가 없으면 CSV 파일을 시스템의 예전 인코딩으로 읽어서 한글이 알아볼 수 없는 글자로 바뀝니다. 표시는 내려받는 파일에만 붙입니다. JSON 입력은 RFC 8259에 따라 읽습니다.
JSON ↔ CSV 변환 예시
JSON을 CSV로 (기본 옵션: 쉼표, CRLF)
쉼표·큰따옴표·줄바꿈이 든 값만 따옴표로 감쌉니다. 값 안의 큰따옴표는 두 번 씁니다.
입력
[{"id":1,"name":"Kim, Jr."},{"id":2,"name":"이\"민\""}]출력
id,name 1,"Kim, Jr." 2,"이""민"""
중첩 객체와 없는 키
중첩 객체는 점 경로가 됩니다. 뒤 객체에서 처음 나온 키는 오른쪽 열로 붙습니다.
입력
[{"a":{"b":1}},{"c":2}]출력
a.b,c 1, ,2
CSV를 JSON으로 (숫자 추론 끔)
모든 값이 문자열로 남아 007의 앞자리 0이 사라지지 않습니다.
입력
id,zip 1,007
출력
[ { "id": "1", "zip": "007" } ]표가 아닌 JSON
입력
"text"
출력
CSV 표로 바꿀 수 없는 JSON입니다
예시는 이 도구를 검증하는 기준 사례의 값입니다.
JSON ↔ CSV 변환 자주 묻는 질문
입력값이 서버로 전송되나요?
아니요. 입력과 결과는 이 브라우저 안에서만 처리되며 저장하지도 않습니다. 새로 고침하면 사라집니다.
CSV를 엑셀에서 열면 한글이 왜 깨지나요?
엑셀은 파일이 UTF-8 바이트 순서 표시(BOM)로 시작하지 않으면 예전 인코딩으로 읽습니다. 「내려받기」는 기본으로 BOM을 붙이므로 글자가 그대로 열립니다. BOM을 기대하지 않는 프로그램에 넣을 파일이면 옵션을 끄세요.
어떤 JSON을 CSV로 바꿀 수 있나요?
객체 배열입니다. 객체 하나가 한 행이 됩니다. 객체 하나만 넣으면 1행으로 처리합니다. 문자열이나 숫자 배열 같은 모양은 열이 없어서 오류로 알려 줍니다.
중첩 객체와 배열은 어떻게 쓰나요?
중첩 객체는 address.city 같은 점 경로 이름의 열로 펼치거나, 옵션을 고르면 JSON 문자열로 한 칸에 넣습니다. 배열은 항상 ["x","y"] 같은 JSON 문자열로 씁니다.
007이 왜 7이 되지 않고 글자로 남나요?
CSV에는 타입이 없고, 우편번호나 상품 번호 같은 코드는 숫자로 읽으면 앞자리 0이 사라집니다. 그래서 기본으로는 모든 값을 문자열로 읽습니다. 숫자 추론을 켜도 올바른 JSON 숫자만 숫자가 되는데, 007은 JSON 숫자가 아닙니다.
큰 숫자가 바뀌지 않나요?
바뀌지 않습니다. 숫자는 양쪽 방향 모두 적힌 글자 그대로 옮기므로 12345678901234567890이나 1.50이 그대로 나옵니다.
관련 도구
처리 방식·표준
- 처리 위치: 이 브라우저 (내 기기). 전송하거나 저장하지 않습니다.
- 표준: RFC 4180 · RFC 8259
- 엔진: papaparse 5.7.0 (CSV 읽기) (MIT) · ZEKILO Dev JSON 파서·CSV 출력기 (자체 구현)
- null과 없는 값은 빈 칸으로 씁니다. true와 false는 글자로 씁니다.
- 값은 적힌 그대로 씁니다. 스프레드시트는 =로 시작하는 칸을 수식으로 다룹니다.
- CSV를 읽을 때 열이 여러 개인 표의 빈 줄은 건너뜁니다. 비었거나 겹치는 머리글에는 field2, name_1 같은 이름을 붙입니다.
- 기준일 2026.10.03
- 변경 이력: 2026.10.03 처음 공개