JSON을 CSV로 변환/ JSON 배열 → CSV 파일

JSON 배열을 원클릭으로 CSV로 변환. 사용자 정의 구분 기호(쉼표/세미콜ロン/탭), 중첩 객체 펼치기, 직접 다운로드 지원.

구분자
JSON
CSV

이 도구가 도움이 되었나요?

코드 예제

JavaScript / Node.js
// Using json2csv npm package
import { Parser } from 'json2csv';

const data = [
  { name: 'Alice', age: 30, city: 'Beijing' },
  { name: 'Bob',   age: 25, city: 'Shanghai' },
];

const parser = new Parser({ fields: ['name', 'age', 'city'] });
const csv = parser.parse(data);
// name,age,city
// Alice,30,Beijing
// Bob,25,Shanghai

// Built-in (no deps)
const toCsv = (arr) => {
  const keys = Object.keys(arr[0]);
  const rows = arr.map(r => keys.map(k =>
    JSON.stringify(r[k] ?? '')).join(','));
  return [keys.join(','), ...rows].join('\n');
};
Python (pandas)
import pandas as pd
import json

# From JSON string
json_str = '[{"name":"Alice","age":30},{"name":"Bob","age":25}]'
df = pd.read_json(json_str)
df.to_csv('output.csv', index=False)

# From nested JSON (flatten)
from pandas import json_normalize
data = [{"user": {"name": "Alice"}, "score": 100}]
df = json_normalize(data)
# Columns: user.name, score
df.to_csv('flat.csv', index=False)

# Custom delimiter
df.to_csv('output.csv', sep=';', index=False)
Go
import (
  "encoding/csv"
  "encoding/json"
  "os"
)

type Row struct {
  Name string `json:"name"`
  Age  int    `json:"age"`
}

func main() {
  data := []Row{{"Alice", 30}, {"Bob", 25}}
  f, _ := os.Create("output.csv")
  w := csv.NewWriter(f)
  w.Write([]string{"name", "age"})
  for _, r := range data {
    w.Write([]string{r.Name, fmt.Sprint(r.Age)})
  }
  w.Flush()
}
Shell (jq + awk)
# jq: extract fields as TSV
cat data.json | jq -r '
  .[] | [.name, .age, .city] | @tsv
' > output.tsv

# With headers
cat data.json | jq -r '
  ["name","age","city"],
  (.[] | [.name, .age, .city])
  | @csv
' > output.csv

# Using Miller (mlr)
mlr --json --ocsv cat data.json > output.csv

자주 묻는 질문

JSON을 CSV로 변환하는 일반적인 사용 사례는?
JSON은 API의 표준 데이터 형식이고, CSV는 스프레드시트(Excel, Google Sheets)와 데이터 분석 도구(pandas, R)의 형식입니다. 일반적인 사용 사례: API 데이터를 Excel로 내보내기, 데이터베이스 쿼리 결과를 데이터 파이프라인으로 가져오기.
중첩된 JSON 객체는 어떻게 처리되나요?
두 가지 접근 방식: 1) 평면화 — user.name과 user.age의 두 열로 변환. 2) 직렬화 — 중첩된 객체를 JSON 문자열로 변환하여 단일 셀에 저장.
CSV의 특수 문자는 어떻게 처리되나요?
RFC 4180 준수: 쉼표, 줄바꿈, 큰따옴표가 포함된 필드는 큰따옴표로 감싸고, 필드 내의 큰따옴표는 이중으로 이스케이프합니다.
什么时候用分号代替逗号?
일부 유럽 국가(독일, 프랑스, 네덜란드)에서는 쉼표가 소수점으로 사용되므로 Excel이 세미콜론(;)을 기본 CSV 구분 기호로 사용합니다.
Python에서 JSON을 CSV로 변환하려면?
표준 라이브러리 사용: import json, csv; data = json.load(open('data.json')); writer = csv.DictWriter(open('out.csv', 'w'), fieldnames=data[0].keys()); writer.writeheader(); writer.writerows(data). pandas도 사용 가능.
JSON 배열 이외의 형식도 변환할 수 있나요?
지원: JSON 배열(가장 일반적), 단일 JSON 객체(한 행 출력), 배열 필드를 포함하는 객체(첫 번째 배열 추출). 미지원: 깊게 중첩된 배열, 불규칙한 배열.