📄 JSON ↔ CSV Converter

📄 JSON Input

ℹ️ About JSON ↔ CSV Converter

JSON to CSV

Convert JSON arrays to CSV format. Supports nested objects (flattened) and arrays.

CSV to JSON

Convert CSV files to JSON arrays. Automatically detects headers.

Features

• Multiple delimiter support
• Header options
• Download results
• Copy to clipboard

JSON-CSV 변환 완벽 가이드

두 데이터 형식의 이해와 활용법

JSON이란?

JSON(JavaScript Object Notation)은 데이터를 저장하고 전송하기 위한 경량 데이터 교환 형식입니다. 사람이 읽고 쓰기 쉬우며, 기계가 파싱하고 생성하기도 쉽습니다.

JSON 예시

{
  "name": "홍길동",
  "age": 30,
  "city": "서울",
  "skills": ["JavaScript", "Python"]
}
  • 키-값 쌍으로 데이터 구조화
  • 중첩된 객체와 배열 지원
  • API 통신의 표준 형식
  • 대부분의 프로그래밍 언어에서 지원

CSV란?

CSV(Comma-Separated Values)는 쉼표로 구분된 값들의 목록으로 데이터를 표현하는 텍스트 파일 형식입니다. 스프레드시트와 데이터베이스에서 널리 사용됩니다.

CSV 예시

name,age,city
홍길동,30,서울
김철수,25,부산
이영희,28,대구
  • 첫 줄은 보통 헤더(컬럼명)
  • 각 줄이 하나의 레코드
  • Excel, Google Sheets에서 바로 열림
  • 대용량 데이터 처리에 효율적

JSON vs CSV 비교

특성JSONCSV
데이터 구조계층적 (중첩 가능)평면적 (테이블 형식)
파일 크기상대적으로 큼작고 효율적
가독성구조화된 형식표 형태로 직관적
데이터 타입문자열, 숫자, 불린, 배열, 객체모든 값이 문자열
주요 사용처API, 설정 파일, 웹 애플리케이션스프레드시트, 데이터 분석, 내보내기
특수문자 처리이스케이프 시퀀스 사용따옴표로 감싸기

언제 변환이 필요할까요?

JSON → CSV
  • API 응답 데이터를 Excel로 분석할 때
  • 데이터베이스 내보내기가 JSON일 때
  • 비개발자와 데이터 공유할 때
  • 대용량 데이터를 경량화할 때
CSV → JSON
  • 스프레드시트 데이터를 API로 전송할 때
  • 웹 애플리케이션 데이터로 사용할 때
  • NoSQL 데이터베이스에 저장할 때
  • 설정 파일을 만들 때

변환 시 주의사항

⚠️
중첩 데이터 손실

JSON의 중첩된 객체나 배열은 CSV로 변환 시 평면화되거나 문자열로 변환됩니다.

⚠️
데이터 타입 손실

CSV는 모든 값이 문자열이므로 숫자, 불린 등의 타입 정보가 사라집니다.

⚠️
특수문자 처리

쉼표, 줄바꿈, 따옴표가 포함된 데이터는 적절히 이스케이프해야 합니다.

⚠️
인코딩 문제

한글 등 유니코드 문자는 UTF-8 인코딩을 확인해야 Excel에서 깨지지 않습니다.

실무 활용 예시

1. 사용자 데이터 내보내기

회원 정보를 CSV로 변환하여 마케팅팀에 전달

2. 제품 카탈로그 업로드

Excel에서 작성한 제품 목록을 JSON으로 변환하여 쇼핑몰 API에 등록

3. 로그 데이터 분석

서버 로그(JSON)를 CSV로 변환하여 Excel에서 피벗 테이블 분석

4. 설문조사 결과 처리

Google Forms CSV 결과를 JSON으로 변환하여 대시보드에 표시

프로그래밍 언어별 변환 방법

JavaScript

// JSON to CSV (간단한 배열)
const jsonData = [
  { name: "홍길동", age: 30 },
  { name: "김철수", age: 25 }
];

const headers = Object.keys(jsonData[0]);
const csv = [
  headers.join(','),
  ...jsonData.map(row =>
    headers.map(h => row[h]).join(',')
  )
].join('\n');

// CSV to JSON
const lines = csv.split('\n');
const headers = lines[0].split(',');
const json = lines.slice(1).map(line => {
  const values = line.split(',');
  return headers.reduce((obj, h, i) => {
    obj[h] = values[i];
    return obj;
  }, {});
});

Python

import json
import csv
import io

# JSON to CSV
json_data = [{"name": "홍길동", "age": 30}]
output = io.StringIO()
writer = csv.DictWriter(output,
    fieldnames=json_data[0].keys())
writer.writeheader()
writer.writerows(json_data)

# CSV to JSON
reader = csv.DictReader(io.StringIO(csv_str))
json_data = list(reader)

자주 묻는 질문 (FAQ)

Q: 중첩된 JSON 객체는 어떻게 변환되나요?

A: 중첩된 객체는 일반적으로 점 표기법(예: user.name, address.city)으로 평면화되거나, JSON 문자열 그대로 셀에 저장됩니다. 복잡한 중첩 구조는 변환 전 데이터 구조를 단순화하는 것이 좋습니다.

Q: CSV 파일을 Excel에서 열면 한글이 깨져요

A: Excel은 기본적으로 ANSI 인코딩을 사용합니다. UTF-8로 저장된 CSV는 Excel에서 "데이터" → "텍스트/CSV에서" 가져오기로 열거나, 파일 앞에 BOM을 추가해야 합니다.

Q: 배열 데이터는 어떻게 처리되나요?

A: JSON 배열은 CSV에서 쉼표로 연결된 문자열이나 별도의 열로 변환됩니다. 예: ["a", "b", "c"] → "a;b;c" 또는 col_0, col_1, col_2로 분리됩니다.

Q: 대용량 파일도 변환할 수 있나요?

A: 브라우저 기반 도구는 메모리 제한이 있어 수십 MB 이상의 파일은 처리가 어려울 수 있습니다. 대용량 파일은 Python이나 Node.js 스크립트를 사용하는 것이 좋습니다.

Q: 구분자를 쉼표 대신 탭이나 세미콜론으로 할 수 있나요?

A: 네, TSV(탭 구분)나 세미콜론 구분도 가능합니다. 유럽 일부 국가에서는 숫자에 쉼표를 사용하므로 세미콜론 구분(;)을 선호합니다.

Q: 빈 값이나 null은 어떻게 처리되나요?

A: JSON의 null은 CSV에서 빈 셀로 표시됩니다. CSV의 빈 셀은 JSON 변환 시 빈 문자열("") 또는 null로 처리됩니다.

관련 데이터 형식

변환 팁

  • 데이터 검증: 변환 전후로 레코드 수가 동일한지 확인하세요.
  • 백업 유지: 원본 파일을 항상 보관하세요.
  • 샘플 테스트: 전체 데이터 변환 전 일부로 테스트하세요.
  • 열 순서: CSV의 열 순서가 중요하면 JSON 키 순서를 정렬하세요.
  • 날짜 형식: 날짜는 ISO 8601 형식(YYYY-MM-DD)을 사용하면 호환성이 좋습니다.