본문으로 건너뛰기
123도구

JSON CSV 변환기

JSON 배열을 엑셀에서 열 수 있는 CSV로, CSV를 JSON으로 바꿉니다. 중첩된 객체는 점 표기로 펼칩니다.

  • RFC 4180 CSV · UTF-8
  • 파일·입력값이 서버로 전송되지 않음
  • 가입 없이 무료

3행 · 7열

CSV

idnameteam.nameteam.floortagsactivenote
1김도구플랫폼7backend; infratrue
2이변환디자인5uifalse
3박, 쉼표데이터7따옴표 "포함"
id,name,team.name,team.floor,tags,active,note
1,김도구,플랫폼,7,backend; infra,true,
2,이변환,디자인,5,ui,false,
3,"박, 쉼표",데이터,7,,,"따옴표 ""포함"""

입력한 값은 브라우저 안에서만 처리됩니다. 그래도 민감한 운영 토큰, 비밀번호, API 키는 입력하지 마세요.

사용 방법

  1. 변환 방향을 고르고 JSON 배열이나 CSV를 붙여 넣습니다. 파일 열기로 .json, .csv 파일을 열 수 있습니다.
  2. JSON → CSV에서는 중첩 객체가 점 경로(user.name) 열로 펼쳐지고, 배열을 어떻게 담을지 고를 수 있습니다.
  3. 엑셀에서 열 파일이면 ‘엑셀용 BOM’을 켠 채 내려받으세요. 한글이 깨지지 않습니다.
  4. CSV → JSON에서는 숫자와 true/false를 자동으로 인식하고, user.name 같은 열을 다시 중첩 객체로 묶습니다.

계산 기준과 공식

CSV는 RFC 4180 규칙으로 씁니다.

  • 값에 구분자, 큰따옴표, 줄바꿈이 있으면 값 전체를 큰따옴표로 감싸고, 안의 큰따옴표는 두 번("") 씁니다.
  • 줄 끝은 CRLF(\r\n)입니다. 엑셀과 대부분의 프로그램이 읽는 형식입니다.
  • 열 순서는 데이터에 키가 처음 나온 순서를 따르고, 어떤 행에 없는 키는 빈 칸으로 둡니다.
  • JSON 최상위가 {"data": [...]}처럼 배열 하나를 감싼 객체면 그 배열을 행으로 씁니다.

BOM은 파일 맨 앞에 붙는 보이지 않는 3바이트(EF BB BF)입니다. 엑셀은 BOM이 없으면 CSV를 EUC-KR로 읽어서 UTF-8 한글이 깨집니다.

예시

  1. 중첩 JSON을 CSV로

    [{"id":1,"user":{"name":"kim","city":"서울"},"tags":["a","b"]}]를 ‘배열: 한 칸에’로 바꾸면

    id,user.name,user.city,tags 1,kim,서울,a; b

    ‘칸 나누기’로 바꾸면 배열 항목마다 열이 생깁니다.

    id,user.name,user.city,tags.0,tags.1 1,kim,서울,a,b
  2. CSV를 다시 중첩 JSON으로

    id,user.name,user.city 머리글의 CSV는 [{"id":1,"user":{"name":"kim","city":"서울"}}]가 됩니다. id의 1은 숫자로 인식됐습니다.

결과를 읽는 법

결과의 행·열 수가 예상보다 많으면 JSON 안에 모양이 다른 객체가 섞여 있다는 뜻입니다. 열이 너무 많아졌다면 배열 처리를 ‘한 칸에’나 ‘JSON 그대로’로 바꿔 보세요. CSV → JSON에서 ‘칸이 많다/적다’ 오류는 따옴표 없이 값 안에 쉼표가 들어간 줄에서 주로 납니다.

자주 묻는 질문

엑셀에서 열면 한글이 깨져요.

엑셀은 BOM이 없는 CSV를 EUC-KR로 읽습니다. '엑셀용 BOM'을 켜고 내려받으면 UTF-8로 제대로 열립니다. 이미 받은 파일은 CSV 뷰어 도구에서 BOM을 붙여 다시 저장할 수 있습니다.

숫자 앞의 0이 사라지면 어떻게 하나요?

CSV → JSON에서 '숫자·불리언 인식'을 끄면 모든 값을 문자열로 둡니다. 우편번호, 전화번호처럼 앞자리 0이 중요한 데이터는 끄고 변환하세요.

엑셀 파일(.xlsx)로 바로 만들 수 있나요?

이 도구는 CSV까지 만듭니다. 엑셀에서 CSV를 열고 '다른 이름으로 저장'에서 .xlsx를 고르면 됩니다.

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

아닙니다. 붙여 넣은 내용과 연 파일은 브라우저 안에서만 변환됩니다.

결과가 이상하거나 있었으면 하는 기능이 있나요? 오류 제보 · 의견 보내기