JSON to CSV 변환기

JSON 목록을 스프레드시트에 바로 쓸 수 있는 CSV 다운로드로 바꿉니다. 이 변환기는 데이터를 검사해 안정적인 열 순서(첫 레코드 기준 또는 모든 키의 합집합)를 만들고, 원하면 중첩 구조를 평탄화하며, Excel·Numbers·Google Sheets 또는 모든 pandas 스크립트에서 깔끔하게 열리는 CSV를 생성합니다.

변환기 작동 방식

  1. 1

    JSON 붙여넣기 또는 업로드

    객체 배열, 또는 데이터가 단일 키 아래에 감싸인 페이로드를 입력합니다.

  2. 2

    열 전략 선택

    첫 레코드의 키 사용(빠르고 예측 가능) 또는 모든 레코드에 걸친 합집합(더 철저함) 중에서 선택합니다.

  3. 3

    출력 조정

    구분자, 따옴표 스타일, 중첩 평탄화, 헤더 켜기/끄기, Excel용 UTF-8 BOM을 설정합니다.

  4. 4

    다운로드

    `.csv`로 저장해 스프레드시트로 가져오거나 `pandas.read_csv`로 불러옵니다.

열 순서 전략

  • 첫 레코드 기준: 열이 첫 JSON 객체의 키와 일치합니다. 빠르고 결정론적입니다. 뒤쪽 레코드에만 나타나는 키는 놓칩니다.
  • 모든 키의 합집합: 모든 레코드를 스캔해 모든 키를 모읍니다. 매우 큰 데이터셋에서는 느리지만 완전한 열 목록을 만듭니다.
  • 사용자 지정 순서: 쉼표로 구분된 열 이름 목록을 제공합니다. 그 외 나머지는 발견된 순서대로 끝에 추가됩니다.

따옴표 처리와 이스케이프

RFC 4180을 따릅니다:

  • 쉼표, 줄바꿈, 큰따옴표를 포함하는 필드는 큰따옴표로 감싸야 합니다.
  • 따옴표로 감싼 필드 안의 큰따옴표는 두 번 반복해 이스케이프합니다. He said "Hi""He said ""Hi"""가 됩니다.
  • 따옴표로 감싼 필드 안의 줄바꿈은 유효하지만 모든 임포터가 처리하지는 못합니다. 최대 호환성이 필요하면 “줄바꿈 이스케이프”를 켜세요.

데이터 타입 보존

CSV는 텍스트입니다. 모든 것이 문자열입니다. 숫자 열, 불리언, 날짜 같은 타입 힌트는 소비 측의 파싱에 달려 있습니다. 몇 가지 팁:

  • 선행 0(007)은 CSV에서 문자열로 보존되지만 Excel은 조용히 숫자로 변환합니다. =""007""로 접두하거나(보기 안 좋지만 동작함) Excel에서 텍스트로 가져오세요.
  • 2^53을 넘는 큰 정수는 Excel에서 정밀도를 잃습니다. JSON에서 문자열로 유지하세요.
  • ISO 날짜(2026-04-18T10:22:00Z)는 가져올 때 열이 텍스트로 서식 지정된 경우에만 Excel 왕복을 견딥니다.
  • 불리언true / false 문자열이 됩니다. 다운스트림이 1/0을 기대하면 내보내기 전에 매핑하세요.

BOM과 Excel

Windows의 Excel은 파일 시작에 UTF-8 BOM(0xEF 0xBB 0xBF)이 필요합니다. 없으면 UTF-8 바이트를 Latin-1로 해석해 ASCII 밖의 모든 것이 깨집니다. Mac Numbers와 Google Sheets는 둘 다 처리합니다.

흔한 실수

  • 배열 대신 객체 전달. 도구는 {...}가 아니라 [{...}, {...}]가 필요합니다. 먼저 풀어내세요.
  • 레코드마다 다른 키. 누락된 열을 피하려면 “모든 키의 합집합” 전략을 사용하세요.
  • null용 센티넬 값. 일부 파이프라인은 빈 셀을 null로, 다른 곳은 문자열 ""로 취급합니다. 한 가지 규칙을 정해 프로젝트 전반에서 지키세요.
  • 로케일 불일치. ,로 내보낸 뒤 ;를 기대하는 유럽 Excel에서 열면 열이 합쳐질 수 있습니다. 대상 로케일에 구분자를 맞추세요.

자주 묻는 질문

배열까지의 JSONPath(예: $.data.items)를 제공하거나 수동으로 풀어내세요. 도구는 최상위 객체 안의 단일 배열을 자동 감지하려 시도합니다.

Excel은 숫자처럼 보이는 문자열을 적극적으로 숫자로 변환합니다. Excel 가져오기 마법사에서 CSV를 “텍스트”로 가져오거나, 내보낼 때 "007" 같은 값을 ="007"로 감싸세요(도구의 “텍스트 안전 모드” 토글로 가능).

네. 구분자로 결합(tags: "a,b,c"), JSON으로 직렬화(tags: "[\"a\",\"b\"]"), 인덱스별 한 열로 분해(tags.0, tags.1, tags.2) 중에서 선택합니다.

네. Google Sheets는 UTF-8과 표준 구분자를 문제없이 처리합니다. 매우 큰 데이터셋(>10MB)은 붙여넣기 대신 IMPORTDATA로 불러오는 것을 고려하세요.

관련 도구

이 도구는 다른 언어로도 제공됩니다