CSV ⇄ JSON 변환기

CSV를 JSON으로, JSON을 CSV로 변환합니다. 쉼표·세미콜론·탭을 자동 감지하고 따옴표 필드를 처리하며, 엑셀에서 잘 열리는 CSV를 내려받습니다.

CSV를 JSON으로 바꾸는 방법

  1. CSV → JSON을 선택한 채로 데이터를 붙여 넣습니다. Excel, Google 스프레드시트, 데이터베이스에서 내보낸 파일이나 스프레드시트에서 바로 복사한 셀(탭으로 구분되어 들어옵니다) 모두 됩니다.
  2. 구분자는 자동 감지로 두거나 쉼표, 세미콜론, 탭, 파이프 중에서 직접 고릅니다.
  3. 첫 행을 헤더로 사용을 켜 두면 각 행이 열 이름을 키로 하는 객체가 됩니다. 끄면 배열의 배열이 나옵니다.
  4. 숫자와 true/false 변환은 숫자 모양의 텍스트를 JSON 숫자로, true, false, null을 JSON 값으로 바꿉니다. 끄면 모든 값이 문자열로 남습니다.
  5. 결과를 복사하거나 다운로드를 눌러 data.json으로 저장합니다. 상태 줄에 변환된 행 수가 표시됩니다.

예시를 누르면 선택한 방향에 맞는 샘플 데이터가 들어와 따옴표가 어떻게 처리되는지 바로 볼 수 있습니다.

JSON을 CSV로 바꾸는 방법

JSON → CSV를 선택하고 객체 배열을 붙여 넣습니다. 어느 객체에든 있는 키는 모두 열이 되며, 키가 처음 나온 순서대로 놓입니다. 그래서 필드가 빠지거나 더 있는 레코드도 열이 맞춰지고, 없는 값은 빈칸이 됩니다. 중첩된 객체와 배열은 JSON 텍스트로 한 셀에 들어가고, null은 빈 셀이 됩니다. 배열의 배열은 헤더 없이 한 행씩 그대로 쓰고, 객체 하나만 넣으면 헤더와 한 행이 됩니다. 구분자가 자동 감지일 때 출력은 쉼표를 씁니다.

다운로드는 맨 앞에 UTF-8 바이트 순서 표시(BOM)를 넣어 data.csv로 저장합니다. Excel은 이 표시로 인코딩을 알아보므로, 한글이나 악센트 글자가 깨지지 않고 제대로 열립니다.

CSV 따옴표 규칙 요약

CSV에는 공식 명세가 하나로 정해져 있지 않지만, 널리 쓰이는 형식을 RFC 4180이 설명하고 있으며 이 변환기도 그것을 따릅니다.

  • 구분자, 큰따옴표, 줄바꿈이 들어 있는 필드는 큰따옴표로 감쌉니다: "Paris, France".
  • 그런 필드 안의 큰따옴표는 두 번 씁니다: "Carol ""CJ"" Jones"는 Carol "CJ" Jones라는 뜻입니다.
  • 따옴표로 감싼 필드는 여러 줄에 걸칠 수 있고, 그 줄바꿈은 값의 일부가 됩니다.
  • CSV를 쓸 때 이 도구는 앞뒤에 공백이 있는 값도 따옴표로 감싸, 파일을 여는 프로그램이 공백을 잘라 내지 않게 합니다.

예시

이 페이지의 CSV 예시는 다음과 같습니다.

name,city,age,member
Alice,"Paris, France",34,true
Bob,Tokyo,28,false
"Carol ""CJ"" Jones",São Paulo,41,true

변환하면 객체 세 개가 됩니다. 첫 번째는 {"name": "Alice", "city": "Paris, France", "age": 34, "member": true}입니다. 따옴표 안의 쉼표는 값에 그대로 남고, 34는 숫자, true는 불리언이 됩니다. 세 번째 행의 이름은 Carol "CJ" Jones로 나오며, JSON에서는 "Carol \"CJ\" Jones"로 표기됩니다.

반대 방향의 JSON 예시에서는 Bob에게만 tags 배열이 있습니다. 결과는 헤더 name,city,age,tags, Alice의 빈 tags 칸, 그리고 Bob의 "[""new""]"입니다. 배열을 JSON 텍스트로 넣었고, 따옴표가 들어 있어 전체를 따옴표로 감싼 것입니다.

자동 감지와 형 변환의 기준

  • 구분자: 첫 줄에서 쉼표, 세미콜론, 탭, 파이프를 세어 가장 많은 것을 고릅니다. 헤더의 따옴표 안에 쉼표가 있거나 첫 줄이 특이하다면 구분자를 직접 고르세요.
  • 숫자: 34, -2.5, 1e3처럼 평범한 숫자만 변환합니다. 앞에 0이 붙은 값(02134), 플러스 부호, 천 단위 구분 기호, 소수점 쉼표(19,90)가 있는 값은 텍스트로 남으므로 우편번호, 전화번호, 유럽식 가격이 망가지지 않습니다.
  • 불리언과 null: 소문자 true, false, null만 변환합니다. Excel에서 온 TRUE는 문자열로 남습니다.
  • 헤더: 비어 있는 헤더 칸은 위치에 따라 column1, column2처럼 이름이 붙고, 같은 이름이 반복되면 _2를 붙여 어떤 열도 사라지지 않게 합니다.

주의할 점

  • 긴 ID. JSON 숫자는 15~16자리를 넘으면 정밀도를 잃어 12345678901234567890이 12345678901234567000이 됩니다. 긴 계좌 번호, 주문 번호, 바코드가 든 열이 있다면 형 변환을 끄세요.
  • 들쭉날쭉한 행. 헤더를 쓸 때 칸이 모자란 행은 빠진 열에 빈 문자열이 들어가고, 마지막 헤더 열을 넘는 칸은 버려집니다. 데이터가 사라진 것 같다면 값 안에 따옴표 없는 쉼표가 있는지 확인하세요.
  • Excel용 세미콜론 CSV. 독일이나 프랑스처럼 소수점에 쉼표를 쓰는 지역의 Excel은 세미콜론으로 구분된 파일을 기대합니다. 그런 환경에서 열 파일이라면 JSON을 CSV로 바꾸기 전에 세미콜론을 고르세요.
  • 빈 줄은 건너뛰며, Windows(CR LF)와 유닉스(LF) 줄 끝을 모두 이해합니다.

자주 묻는 질문

결과 JSON을 API나 코드에 바로 써도 되나요?

네, 2칸 들여쓰기를 한 표준 JSON입니다. 한 줄로 줄이거나 손으로 고친 파일을 검사하려면 JSON 포매터에 붙여 넣으세요.

Excel 파일을 바로 변환할 수 있나요?

.xlsx 파일 자체는 안 되지만, Excel이나 Google 스프레드시트에서 셀을 선택해 복사한 뒤 여기에 붙여 넣으면 됩니다. 탭으로 구분된 텍스트는 자동으로 감지됩니다.

제 데이터는 어디로 가나요?

아무 데도 가지 않습니다. 해석과 변환은 페이지 안에서 이루어지므로, 고객이나 직원 정보가 담긴 표를 다룰 때도 안심할 수 있습니다.

열 순서가 왜 다르게 나오나요?

JSON → CSV에서는 객체들에서 키가 처음 나온 순서대로 열이 놓입니다. 앞에 두고 싶은 키를 첫 번째 객체에 먼저 넣거나, 스프레드시트에서 나중에 열 순서를 바꾸세요.