Json To Csv LogoJson To Csv

JSON을 CSV로 변환하는 방법이 있나요? 네 — 상황에 맞게 고르는 5가지 방법 (2026 가이드)

네, 있어요. JSON을 CSV로 변환하는 실용적인 방법은 다섯 가지이고, 어떤 방법이 맞는지는 상황에 달려 있어요. 한 번만 변환할 파일인지, 스프레드시트로 보낼 건지, 반복되는 작업인지, 파이프라인에 넣을 건지에 따라 달라져요. 다섯 가지 방법을 모두 같은 파일로 테스트한 결과와, 변환 자체가 잘못된 선택인 경우까지 정리했어요.

업데이트: 2026-10-179 분 소요

아래 다섯 가지 방법을 모두 테스트한 직원 파일

대부분의 변환 가이드는 각 방법을 추상적으로 설명해서 비교하기가 불가능해요. 이 가이드는 반대로 해요. 아래 다섯 가지 방법을 모두 같은 세 개 레코드 파일로 실행하니까 결과를 직접 비교할 수 있어요. 파일은 작지만 만만하지는 않아요. 중첩 객체(dept 안에 team과 floor), 목록(skills), 그리고 실제 변환에서 자주 발목을 잡는 두 가지 엣지 케이스인 불리언(active)과 빈 목록(Lina는 skills가 없어요)이 들어 있거든요.

어떤 방법이 이 파일을 깔끔하게 처리하지 못하면 실제 파일도 처리하지 못해요. 처리할 수 있다면 더 큰 파일을 맡기기 전에 결과가 정확히 어떻게 나오는지 알 수 있어요. 파일을 읽으면서 이 점을 기억해 두세요. 정답은 여섯 개 컬럼(id, name, dept.team, dept.floor, skills, active)과 세 개 행이고, Ana의 skills 셀은 chat; phone, Lina의 skills 셀은 비어 있어야 해요.

staff.json, the shared test file
[
  { "id": 1, "name": "Ana", "dept": { "team": "Support", "floor": 2 }, "skills": ["chat", "phone"], "active": true },
  { "id": 2, "name": "Ken", "dept": { "team": "Sales", "floor": 3 }, "skills": ["email"], "active": false },
  { "id": 3, "name": "Lina", "dept": { "team": "Support", "floor": 2 }, "skills": [], "active": true }
]

방법 1: 온라인 변환기 — 설치 없이 쓰는 방법

무료 온라인 JSON to CSV 변환기를 열고, JSON을 붙여넣거나 파일을 업로드한 뒤 CSV를 다운로드하면 끝이에요. 방법이 이게 전부이고, 한 번만 변환할 파일이라면 이 방법이 맞아요. 설치할 것도 없고, 배울 것도 없고, 1분도 안 걸려서 결과가 나와요. 이 사이트의 변환기는 브라우저 안에서만 실행돼서 파일이 내 컴퓨터를 떠나지 않고, 펼치기 토글이 중첩 데이터를 어떻게 처리할지 결정해요.

펼치기를 켜면 직원 파일이 정확히 위에서 말한 여섯 개 컬럼 답으로 변환돼요. dept는 dept.team과 dept.floor가 되고, skills 목록은 세미콜론 구분자로 하나의 셀에 합쳐지며, Lina의 빈 목록은 빈 셀이 돼요. 펼치기를 끄면 같은 파일에서 dept와 skills가 하나의 셀 안에 JSON 텍스트로 남아요. 유효한 CSV는 맞지만 정렬하거나 필터링할 수 있는 표는 아니에요. JSON을 CSV로 펼치는 방법에 대한 이전 가이드에서 이 토글을 셀 단위로, 엣지 케이스까지 정리해 뒀어요.

솔직한 한계도 있어요. 온라인 변환기는 한 번에 파일 하나씩 처리하는 도구예요. 매일 아침 파일 쉰 개를 변환해야 하거나, 변환이 다른 프로그램 안에서 일어나야 한다면 아래 방법 중 하나가 더 잘 맞아요. 그리고 목록 자체를 분석하고 싶다면, 사람 한 명당 한 행이 아니라 스킬 하나당 한 행으로 만들고 싶다면 온라인 변환기로는 안 돼요. 그럴 때는 JSON 데이터를 펼치는 방법 가이드에 있는 펼치기(explode) 레시피가 필요해요.

Way 1 output: online converter, flattening on (verified)
id,name,dept.team,dept.floor,skills,active
1,Ana,Support,2,chat; phone,true
2,Ken,Sales,3,email,false
3,Lina,Support,2,,true

방법 2: 이미 가지고 있는 스프레드시트 — Excel Power Query

CSV가 어차피 스프레드시트로 갈 거라면 변환기가 아예 필요 없을 수도 있어요. Excel은 Power Query로 JSON을 직접 읽을 수 있어요. 빈 통합 문서를 열고 데이터, 데이터 가져오기, 파일에서, JSON에서 순서로 들어가서 파일을 선택하면 Power Query가 레코드를 보여줘요. dept 컬럼을 확장하면 중첩 객체가 team과 floor 컬럼으로 펼쳐지고, skills 컬럼은 스킬 하나당 한 행을 원하면 확장하고, 하나의 합쳐진 셀을 원하면 추출한 뒤 닫기 및 로드를 눌러요. 결과는 필터와 피벗을 바로 쓸 수 있는 진짜 Excel 표로 들어와요.

시작하기 전에 알아둘 것 두 가지가 있어요. 첫째, 확장 단계는 중첩 컬럼마다 따로 적용돼요. 세 단계로 중첩된 파일은 세 번 확장해야 하고, 하나라도 놓치면 Record 값이 들어 있는 컬럼이 남게 돼요. 둘째, 완성된 CSV를 Excel에서 여는 것 자체에도 함정이 있어요. UTF-8 파일이 깨진 문자로 열릴 수 있고, 007 같은 값은 앞의 0이 사라질 수 있어요. 그래서 JSON으로 CSV를 만드는 방법 가이드에서 다시 가져오기로 검증하는 습관을 다뤄요. 결과를 열고, 문자를 확인하고, 코드를 확인한 뒤에야 끝났다고 말할 수 있어요.

Google Sheets는 이 방법에서 유일한 빈틈이에요. Sheets에는 네이티브 JSON 가져오기가 없어요. 파일, 가져오기, JSON 같은 메뉴가 없는 거예요. 실용적인 경로는 온라인 변환기를 먼저 거치는 것, 아니면 JSON을 가져와서 파싱하는 작은 Apps Script를 쓰는 것이에요. 이미 Sheets 안에 있다면 변환기 경로가 더 빠르고, 가져오기를 매일 반복해야 한다면 스크립트 경로가 이겨요.

방법 3: 이미 쓰고 있는 코드 — Python이나 jq

이미 코드를 쓴다면 Python과 jq가 두 가지 일꾼이고, 둘은 한 가지 면에서 유익하게 달라요. Python pandas의 json_normalize는 중첩 객체를 점 표기법 컬럼으로 자동으로 펼쳐요. dept는 별도 단계 없이 dept.team과 dept.floor가 돼요. 대신 목록은 직접 합치지 않으면 Python repr 문자열로 남아요. 합치지 않고 실행하면 Ana의 skills 셀은 목록을 텍스트로 찍어낸 형태가 돼서 쓸 수 있는 값이 아니에요. 아래 스니펫에 있는 한 줄 합치기 수정으로 해결되고, 그러면 결과가 온라인 변환기와 정확히 같아져요.

jq는 반대 접근을 써요. 자동으로 해주는 게 아무것도 없고, 모든 컬럼을 직접 지정해요. 각 필드를 직접 이름으로 적고, 합치는 방식을 직접 고르면, 쓴 그대로의 헤더 행을 얻어요. 이런 명시성이 다루기 까다로운 파일을 한 번 변환할 때 jq의 진짜 강점이고, 넓은 파일에서는 약점이 돼요. 필드가 마흔 개인 레코드는 표현식 마흔 개를 뜻하니까요. 직원 파일에서는 두 도구 모두 같은 여섯 개 컬럼과 세 개 행을 만들어요. 그게 핵심이에요. 방법은 바뀌어도 정답은 바뀌지 않아요.

반복되는 경우에 대한 Python 팁 하나 더 있어요. json_normalize에 explode를 더하면 목록이 항목 하나당 한 행으로 바뀌는데, 이게 온라인 변환기가 제공하지 않는 펼치기예요. 분석에 스킬 하나당 한 행이 필요하다면 그 레시피를 쓰면 되고, 검증된 jq 동등 버전과 함께 JSON 데이터를 펼치는 방법 가이드에서 전체를 다뤄요.

Way 3 output: Python, json_normalize plus join (verified)
import json
import pandas as pd

rows = json.load(open('staff.json'))
df = pd.json_normalize(rows)
df['skills'] = df['skills'].apply(lambda v: '; '.join(v))
df.to_csv('staff.csv', index=False)

# staff.csv:
# id,name,skills,active,dept.team,dept.floor
# 1,Ana,chat; phone,True,Support,2
# 2,Ken,email,False,Sales,3
# 3,Lina,,True,Support,2

방법 3, 계속: jq 한 줄 명령어

같은 변환의 jq 버전은 명령어 한 줄이에요. 헤더 행은 직접 손으로 쓰고, 각 레코드는 한 행으로 매핑돼요. 중첩 필드는 점(dept.team)으로 주소가 지정되고, 목록은 세미콜론으로 합쳐지며, 따옴표 처리는 @csv가 맡아요. 직원 파일에 실행하면 Python 버전과 같은 세 개 행을 얻고, 겉모습 차이 하나만 있어요. jq는 모든 문자열 필드에 따옴표를 붙이니까 헤더 행이 id,name,...이 아니라 "id","name",...처럼 보이는 거예요. 둘 다 유효한 CSV이고, 모든 스프레드시트와 파서가 똑같이 읽어요.

jq가 제자리를 차지하는 두 번째 이유도 있어요. 에디터로 열기에는 너무 큰 파일에서도 동작해요. 위의 한 줄 명령어는 파일 전체를 메모리에 올리는데, 수십 메가바이트까지는 괜찮아요. 하지만 jq에는 스트리밍 모드(--stream 플래그)도 있어서 파일을 레코드 단위로 처리해요. JSON 파일이 수백 메가바이트라면 스트리밍 jq나 청크 단위 Python 스크립트가 정답이고, 브라우저 탭은 아니에요.

jq 결과를 믿기 전에 세 가지만 확인하면 실수를 크게 줄일 수 있어요. 첫째, 행 개수를 세어 보세요. 헤더 한 줄을 빼고 직원 파일에서는 세 행이 나와야 해요. 행이 더 적다면 레코드가 빠진 거고, 더 많다면 줄바꿈이 들어간 값이 행을 나눈 거예요. 둘째, 첫 행과 마지막 행을 눈으로 확인해 보세요. Ana의 skills 셀에 chat; phone이 들어 있는지, Lina의 skills 셀이 비어 있는지, 불리언이 true와 false로 제대로 나왔는지 보는 거예요. 셋째, 비어 있으면 안 되는 셀에 null이나 빈 문자열이 있는지 찾아보세요. 중첩 필드가 없는 레코드는 jq에서 null을 내놓을 수 있어서, 빈 셀과 null 셀을 구별해야 해요. 이 세 가지 확인을 통과한 뒤에야 파일을 보내는 게 안전해요.

실제 파일을 돌리기 전에 직원 파일 같은 작은 테스트 파일로 먼저 실행해 보는 습관도 도움이 돼요. 작은 파일에서 헤더와 행 개수가 맞으면, 같은 명령어를 실제 파일에 그대로 쓸 수 있어요. 작은 파일에서 어긋나면 실제 파일에서도 어긋나니까요.

Way 3 output: jq, explicit columns (verified)
jq -r '(["id","name","dept.team","dept.floor","skills","active"] | @csv),
  (.[] | [.id, .name, .dept.team, .dept.floor, (.skills | join("; ")), .active] | @csv)' staff.json

# "id","name","dept.team","dept.floor","skills","active"
# 1,"Ana","Support",2,"chat; phone",true
# 2,"Ken","Sales",3,"email",false
# 3,"Lina","Support",2,"",true

방법 4: 에디터 — VS Code

이미 VS Code에서 생활한다면 에디터를 떠나지 않고 변환할 수 있어요. 가장 빠른 경로는 내장 터미널이에요. 폴더를 열고, VS Code 안에서 터미널을 연 뒤 방법 3의 Python이나 jq 명령어를 실행하면 같은 폴더에 출력 CSV가 생기고, VS Code Excel 뷰어 확장 프로그램이나 내장 미리보기로 바로 확인할 수 있어요. 명령어보다 클릭을 선호한다면 Rainbow CSV 같은 확장 프로그램이나 JSON to CSV 확장 프로그램이 명령 팔레트를 통해 열린 파일을 변환해 줘요.

에디터 경로의 진짜 장점은 반복 작업이에요. JSON이 이미 편집 중인 설정 파일이나 API 응답이라면 그 자리에서 변환하면 맥락을 유지할 수 있고, 에디터 diff 보기가 정확히 무엇이 바뀌었는지 보여줘요. 전체 안내, 확장 프로그램, 터미널, 단축키 한 번으로 끝나는 태스크는 VS Code 가이드에 있고, 함정(중첩 데이터를 문자열로 바꿔버리는 확장 프로그램, 잘못된 폴더에 쓰는 터미널)도 함께 다뤄요. 짧게 말하면, VS Code는 변환하기 좋은 장소이지만, 변환 자체는 여전히 다른 방법 중 하나가 에디터 옷을 입은 거예요.

방법 5: 직접 만드는 앱 안에서 — 라이브러리 호출

다섯 번째 방법은 변환이 한 번 할 작업이 아니라 만들고 있는 무언가의 일부일 때 쓰는 거예요. 대시보드 내보내기 버튼, 야간 보고서, 데이터 파이프라인 같은 경우요. 그럴 때는 도구를 찾지 않고 함수를 호출해요. 아래 스니펫이 JavaScript에서의 핵심이에요. 점 표기법 컬럼 이름을 따라가고, 목록 값을 합치고, 쉼표나 따옴표나 줄바꿈이 들어 있는 것은 따옴표를 두 배로 하고 셀을 감싸서 이스케이프해요. 직원 파일에 실행하면 온라인 변환기와 정확히 같은 행이 나오는데, 우연이 아니에요. 이 사이트 변환기 엔진도 같은 아이디어이고, 엣지 케이스(들쭉날쭉한 행, 중첩 목록, 빈 객체)까지 처리한 버전이에요.

여기서 결정은 직접 만들지 빌려 쓸지이고, 솔직한 답은 보통 빌려 쓰는 쪽이에요. pandas json_normalize, 사용하는 언어의 CSV 라이브러리, 아래 변환기 엔진 패턴이 엣지 케이스에서 손수 만든 버전보다 잘해요. 직접 만드는 건 변환에 라이브러리가 제공하지 않는 규칙이 있을 때만 해요. 직접 정한 펼치기 방식, 도메인에 특화된 합치기, 스트리밍 요구 사항 같은 경우요. 그리고 변환이 서버에서 실행된다면 프라이버시 차이도 기억해 두세요. 브라우저 변환기는 파일을 사용자 컴퓨터에 두지만, 서버 변환기는 데이터를 보게 돼요.

Way 5 output: a library call in JavaScript (verified)
const rows = require('./staff.json');
const cols = ['id', 'name', 'dept.team', 'dept.floor', 'skills', 'active'];
const get = (r, p) => p.split('.').reduce((o, k) => o?.[k], r);
const esc = v => { const s = String(v ?? '');
  return /[",\n]/.test(s) ? '"' + s.replace(/"/g, '""') + '"' : s; };
console.log(cols.join(','));
for (const r of rows)
  console.log(cols.map(c => esc(c === 'skills' ? (get(r, c) || []).join('; ') : get(r, c))).join(','));

# id,name,dept.team,dept.floor,skills,active
# 1,Ana,Support,2,chat; phone,true
# 2,Ken,Sales,3,email,false
# 3,Lina,Support,2,,true

어떤 방법도 잘 통하지 않을 때

예라고만 말하는 가이드는 빠진 내용으로 거짓말하는 거예요. CSV로 변환하는 게 잘못된 선택인 파일이 있거든요. 알고 있으면 어떤 도구보다 시간을 많이 아낄 수 있어요. 첫 번째 경우는 깊게 중첩되거나 그래프 형태인 데이터예요. 댓글 안에 답글이 있고 그 안에 또 답글이 있는 댓글 스레드, 서로를 참조하는 레코드 같은 경우요. 그걸 컬럼으로 펼치면 수백 개의 듬성듬성한 컬럼이 되거나 손실이 있는 요약이 되고, 솔직한 답은 JSON 그대로 두거나 펼치는 대신 jq로 쿼리하는 거예요.

두 번째 경우는 스키마가 섞인 경우예요. 어떤 레코드에는 다른 레코드에 없는 키가 있거나, 같은 키가 어떤 레코드에서는 문자열이고 다른 레코드에서는 객체인 파일이요. 변환기는 모든 키의 합집합을 가져오고 빈 셀을 남기는 방식으로 처리하는데, 맞는 처리이지만 쓸모가 없는 경우가 많아요. 결과 표가 대부분 구멍으로 채워지니까요. 변환하기 전에 레코드들이 정말 같은 종류인지 물어보세요. 아니라면 파일을 레코드 유형별로 먼저 나눈 뒤 각 부분을 따로 변환해요.

세 번째 경우는 규모예요. 사용하는 도구가 감당하기에 너무 큰 파일이요. 브라우저 변환기는 수십 메가바이트쯤에서 버거워하고, 에디터 가져오기는 멈추고, pandas도 느려져요. 해법은 더 좋은 변환기가 아니라 다른 형태예요. 파일을 나누거나, jq --stream으로 스트리밍하거나, CSV를 아예 건너뛰고 데이터를 JSON Lines(한 줄에 JSON 객체 하나)로 유지하는 거예요. JSON Lines는 자연스럽게 스트리밍되고 쿼리도 가능해요. 큰 JSON을 CSV로 온라인 변환하는 방법 가이드에서 크기 문제를 전체적으로 다뤄요.

어떤 방법을 골라야 할까요?

도구 평판이 아니라 상황으로 골라요. 파일 하나, 한 번, 빨리 끝내고 싶다면 방법 1, 온라인 변환기예요. 계속 작업할 스프레드시트에 결과가 들어가야 한다면 방법 2, Power Query예요. 이미 코드를 쓰고, 파일이 까다롭거나 변환이 반복될 거라면 방법 3, Python이나 jq예요. VS Code에서 이미 파일을 편집하고 있다면 방법 4, 내장 터미널이에요. 변환이 직접 배포하는 소프트웨어 안에서 일어나야 한다면 방법 5, 라이브러리 호출이에요.

두 가지 동점 해소 기준이 나머지 경우 대부분을 정리해 줘요. 프라이버시가 중요하다면, 파일에 고객 데이터나 자격 증명이나 이메일로 보내고 싶지 않은 내용이 들어 있다면 데이터를 내 컴퓨터에 두는 방식을 골라요. 브라우저 변환기, 로컬 스크립트, 에디터가 그 경우에 해당해요. 파일이 크다면 스트리밍되는 방식을 골라요. jq --stream이나 청크 단위 Python 스크립트, 브라우저 탭이 아니에요. 나머지는 취향과 습관이고, 다섯 가지 방법 중 어느 것으로도 형태가 잘 잡힌 파일에서는 같은 올바른 CSV가 나와요.

구체적인 예로 결정해 볼게요. 행이 쉰 개쯤 되는 파일을 한 번만 변환해서 동료에게 보내야 한다면 온라인 변환기가 맞아요. 파일을 붙여넣고 CSV를 받아서 그대로 전달하면 되고, 스크립트를 짜거나 설정을 만질 이유가 없어요. 반대로 같은 형태의 파일이 매일 아침 도착해서 같은 보고서로 만들어야 한다면 상황이 달라져요. 그때는 Power Query로 가져오기를 저장해 두거나 Python 스크립트 하나로 고정하는 쪽이 나아요. 첫날은 조금 손이 가지만, 둘째 날부터는 파일을 바꾸기만 하면 같은 결과가 나오니까요. 한 번만 할 일인지 매일 반복될 일인지가 가장 먼저 물어야 할 질문이에요.

받는 사람이 누구인지도 결정을 바꿔요. 결과를 스프레드시트로 계속 다듬을 동료에게 보낸다면 Power Query로 만든 표가 가장 자연스러워요. 필터와 피벗이 바로 되니까요. 반대로 결과를 다른 프로그램이 읽어야 한다면 헤더 이름과 구분자가 정해진 CSV 파일 자체가 필요하고, 그때는 스크립트나 라이브러리 호출이 더 정확해요. 사람이 볼 표인지 기계가 읽을 파일인지가 다르면, 같은 직원 파일이라도 골라야 할 방법이 달라져요.

모든 방법이 반드시 결정해야 하는 것

어떤 방법을 골라도 네 가지 결정이 그 안에 숨어 있어요. 이 결정에 대해 다르게 답한 두 파일로 만든 CSV는 같은 CSV가 아니에요. 펼치기: 중첩 객체를 점 표기법 컬럼으로 만들지, 셀 안에 JSON 텍스트로 둘지. 구분자: 쉼표, 세미콜론, 탭, 파이프 중 어느 것을 쓸지, 그리고 사용하는 스프레드시트가 같은 구분자를 기대하는지. 헤더 행: 컬럼 이름을 포함할지, 그리고 그 이름이 다운스트림 도구에서 기대하는 이름인지. 인코딩: 일반 UTF-8인지, 그리고 사용하는 스프레드시트가 UTF-8로 여는지 다른 인코딩으로 여는지.

이건 고급 주제가 아니에요. CSV가 첫 번째 시도에 제대로 열리는지 다섯 번째 시도에 열리는지를 결정하는 결정들이에요. JSON으로 CSV를 만드는 방법 가이드에서 원시 데이터를 쓸 수 있는 파일로 바꾸는 일곱 가지 결정을 모두 다루고, 각각을 실제 변환기로 테스트했어요. 한 번 읽어두면 그 이후 모든 변환이 더 빨라져요.

구분자 결정이 틀어지면 가장 흔하게 생기는 증상은 엑셀에서 모든 값이 한 컬럼에 몰려 보이는 거예요. 쉼표로 만든 CSV를 소수점 구분자로 쉼표를 쓰는 로케일의 스프레드시트에서 열면, 프로그램이 쉼표를 구분자가 아니라 숫자의 일부로 보기도 해요. 반대로 세미콜론으로 만든 파일을 쉼표를 기대하는 도구에서 열면 한 행이 통째로 하나의 셀처럼 보이죠. 그래서 파일을 보내기 전에 받는 쪽에서 쓸 스프레드시트나 파서가 어떤 구분자를 기대하는지 확인하는 게 좋아요. 이미 틀어진 파일을 받았다면 다시 변환하는 게 먼저예요. 스프레드시트의 가져오기 마법사에서 구분자를 직접 골라 다시 읽으면, 원본 파일을 건드리지 않고도 고칠 수 있어요.

헤더 행과 인코딩도 같은 방식으로 확인하면 좋아요. 다운스트림 도구가 id나 dept.team 같은 이름을 그대로 기대하는데 내보낸 파일의 헤더가 다르면, 조인이나 가져오기가 조용히 실패할 수 있어요. 그래서 변환 전에 받는 쪽이 기대하는 컬럼 이름을 먼저 확인하고, 변환 뒤에는 헤더 행이 그 이름과 같은지 한 번 더 보는 게 좋아요. 인코딩도 마찬가지예요. 파일을 열었을 때 이름이나 주소 같은 문자가 깨져 보인다면 인코딩이 어긋난 거예요. 그럴 때는 파일을 다시 만들 필요 없이 스프레드시트 가져오기에서 UTF-8로 지정해 다시 읽으면 대부분 해결돼요. 이 두 가지는 변환이 끝난 뒤에 확인하는 게 아니라, 변환하기 전에 정해 두는 결정이에요.

관련 가이드

자주 묻는 질문

JSON을 CSV로 무료로 변환하는 방법이 있나요?

네, 이 가이드의 다섯 가지 방법은 모두 무료예요. 온라인 변환기는 가입 없이 무료로 쓸 수 있고, Excel Power Query는 Excel에 포함되어 있고, Python과 jq는 무료 오픈 소스이며, VS Code도 무료이고, JavaScript 방식은 표준 라이브러리만 써요. JSON을 CSV로 변환하는 데 돈을 낼 필요는 없어요.

아무것도 설치하지 않고 JSON을 CSV로 변환하는 방법이 있나요?

네. 무료 온라인 변환기를 쓰면 돼요. 브라우저에서 JSON을 붙여넣거나 파일을 업로드하고 CSV를 다운로드하면 돼요. 이 사이트의 변환기는 브라우저 안에서만 실행돼서 설치하는 게 아무것도 없고 파일이 내 컴퓨터를 떠나지도 않아요. 파일이 이미 가지고 있는 스프레드시트에서 열려 있다면 Power Query도 설치 없이 쓸 수 있어요.

코드를 쓰지 않고 JSON을 CSV로 변환하는 방법이 있나요?

네, 두 가지가 있어요. 온라인 변환기는 코드가 전혀 필요 없어요. 붙여넣고, 변환하고, 다운로드하면 끝이에요. Excel Power Query도 코드가 필요 없어요. JSON 파일을 가져오고, 클릭으로 중첩 컬럼을 확장하고, 결과를 표로 로드하면 돼요. 코드는 변환이 반복되어야 하거나 파일이 까다로울 때 유용해져요.

Excel에서 JSON을 CSV로 변환하는 방법이 있나요?

네, Power Query로 할 수 있어요. 데이터, 데이터 가져오기, 파일에서, JSON에서 순서로 들어가요. 각 중첩 컬럼을 확장해서 객체를 점 표기법 컬럼으로 펼치고, 목록 컬럼은 항목 하나당 한 행을 원하면 확장하고 합쳐진 셀 하나를 원하면 추출한 뒤 닫기 및 로드를 눌러요. Google Sheets에는 같은 네이티브 가져오기가 없어요. 온라인 변환기를 거치거나 작은 Apps Script를 대신 써요.

큰 JSON 파일을 CSV로 변환하는 방법이 있나요?

네, 하지만 브라우저 탭에서는 아니에요. 수십 메가바이트 이상 파일에는 jq 스트리밍 모드(jq --stream)를 쓰면 되는데, 파일 전체를 올리는 대신 레코드 단위로 처리해요. 아니면 배치 단위로 읽고 쓰는 청크 단위 Python 스크립트를 써요. 파일이 수백 메가바이트라면 CSV 대신 JSON Lines(한 줄에 JSON 객체 하나)로 유지하는 것도 고려해 보세요.

중첩 데이터를 그대로 유지하면서 JSON을 CSV로 변환하는 방법이 있나요?

네, 펼치기를 끈 상태로 변환하면 돼요. 중첩 객체와 목록은 그대로 단일 셀 안에 JSON 텍스트로 남아서 아무것도 잃지 않지만, 결과는 정렬 가능한 표가 아니에요. 둘 다 필요하다면, 분석할 부분은 펼치고 나머지는 JSON 텍스트로 두거나, 필요한 목록을 항목 하나당 한 행으로 펼쳐요.

CSV를 다시 JSON으로 변환하는 방법이 있나요?

네, 반대 방향도 똑같이 잘 지원돼요. CSV를 JSON으로 변환하는 방법 가이드에서 세 가지 믿을 만한 방법을 다뤄요. 온라인 변환기, Python과 pandas 스니펫, 그리고 Excel이나 Google Sheets를 거치는 솔직한 두 단계 방식이에요. 둘 다 JSON을 네이티브로 내보내지 않으니까요. 펼치기, 구분자, 헤더, 인코딩이라는 같은 네 가지 결정이 반대 방향에도 적용돼요.

파일 하나, 1분, 설치 없음

JSON을 붙여넣거나 파일을 업로드해 보세요. 중첩 객체는 점 표기법 컬럼으로 펼쳐지고, 목록은 깔끔한 셀 하나로 합쳐지며, 다운로드 파일은 일반 UTF-8이에요. 무료이고, 가입도 필요 없고, 브라우저 안에서만 실행돼요.

JSON to CSV 변환기 열기
모든 가이드