JSON-CSV 변환

📋 포맷/변환

JSON 배열을 CSV 형식으로 바꾸거나 CSV를 JSON으로 전환합니다.

📊 JSON ↔ CSV 변환기란?

JSON과 CSV를 양방향으로 즉시 변환하는 도구입니다. JSON(JavaScript Object Notation)은 API 통신에, CSV(Comma-Separated Values)는 스프레드시트 작업에 주로 사용됩니다. API 데이터를 엑셀에서 열거나, 엑셀 데이터를 웹 애플리케이션에서 사용할 때 활용하세요.

📋 JSON vs CSV 비교

항목JSONCSV
구조계층적 (중첩 가능)평면적 (표 형태)
타입 지원숫자, 문자열, 불린, null, 배열, 객체모두 문자열
가독성개발자 친화적엑셀 친화적
주요 용도API, 설정파일데이터 내보내기, 대량 업로드

🔄 변환 예시

같은 데이터가 두 포맷에서 어떻게 표현되는지 보면, 어느 쪽이 어떤 작업에 맞는지 바로 감이 옵니다. JSON 배열의 각 객체가 CSV 한 행이 되고, 객체의 키가 헤더 행이 됩니다.

JSON

[
  { "id": 1, "name": "김철수", "dept": "개발", "active": true },
  { "id": 2, "name": "이영희", "dept": "디자인", "active": false }
]

CSV

id,name,dept,active
1,김철수,개발,true
2,이영희,디자인,false

값에 쉼표나 줄바꿈이 들어 있으면 자동으로 큰따옴표로 감싸집니다. 예를 들어 주소 서울시 강남구, 101동"서울시 강남구, 101동"으로 출력됩니다.

⚠️ 변환에서 데이터가 깨지는 경우

두 포맷은 표현력이 다르기 때문에 변환 과정에서 정보가 손실될 수 있습니다. 자주 문제가 되는 것들입니다.

  • 중첩 구조는 평면화되지 않음 — 객체 안의 객체는 한 셀에 JSON 문자열로 들어갑니다. 표로 다루려면 미리 구조를 펼쳐야 합니다.
  • 엑셀이 앞자리 0을 지움 — 우편번호 062346234가 됩니다. 엑셀에서 해당 열을 텍스트 서식으로 지정한 뒤 가져오세요.
  • 긴 숫자가 지수 표기로 바뀜 — 카드번호나 큰 ID가 1.23E+15처럼 변합니다. 같은 이유로 텍스트 서식이 필요합니다.
  • 한글이 깨짐 — 엑셀에서 CSV를 그냥 열면 인코딩이 어긋날 수 있습니다. "데이터 → 텍스트 가져오기"에서 UTF-8을 지정하면 해결됩니다.
  • null과 빈 문자열 구분이 사라짐 — CSV에서는 둘 다 빈 칸으로 보이므로, 되돌릴 때 의도와 달라질 수 있습니다.

💡 활용 사례

  • REST API 응답을 CSV로 변환하여 엑셀에서 분석
  • 엑셀 데이터를 JSON으로 변환하여 웹앱에 업로드
  • 데이터베이스 덤프를 스프레드시트로 열기
  • 테스트 데이터 생성 및 포맷 변환

💡 실무 팁

중첩 구조 JSON은 CSV 변환 전에 flatten으로 평면화하면 한 셀당 한 값으로 깔끔하게 떨어집니다. 반대로 CSV → JSON 변환 시 true/false숫자는 자동 타입 추론됩니다.

자주 묻는 질문

중첩된 JSON도 CSV로 변환되나요?

중첩된 객체/배열은 JSON 문자열로 직렬화되어 하나의 셀에 들어갑니다. 완전히 평면화하려면 사전에 JSON 구조를 단순화하세요.

CSV의 특수문자(쉼표, 따옴표)는 어떻게 처리되나요?

쉼표, 따옴표, 줄바꿈이 포함된 값은 자동으로 큰따옴표로 감싸지고, 내부 따옴표는 이중 따옴표("")로 이스케이프됩니다.

CSV를 JSON으로 변환할 때 타입은 어떻게 결정되나요?

true/false는 불린, 숫자 형태는 Number로 자동 변환됩니다. 그 외는 문자열로 유지됩니다.

엑셀에서 열었더니 한글이 깨져요.

CSV를 더블클릭으로 열면 인코딩이 어긋날 수 있습니다. 엑셀의 "데이터 → 텍스트/CSV 가져오기"를 사용하고 원본 파일 형식을 UTF-8로 지정하면 정상적으로 표시됩니다.

우편번호 앞의 0이 사라집니다.

엑셀이 숫자로 인식해 앞자리 0을 없애기 때문입니다. 가져오기 마법사에서 해당 열을 "텍스트" 서식으로 지정하면 그대로 유지됩니다. 카드번호처럼 긴 숫자가 지수 표기로 바뀌는 것도 같은 이유입니다.

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

아니요. 변환은 브라우저 안에서만 처리되며 입력한 데이터가 서버로 전송되거나 저장되지 않습니다. 고객 데이터나 사내 자료도 안전하게 변환할 수 있습니다.

관련 도구

광고