JSON CSV 변환기

온라인에서 JSON 파일을 CSV(으)로 변환해 보세요. 무료로 빠르게 변환할 수 있으며, 파일은 서버에 업로드되지 않고 브라우저 내에서 안전하게 처리됩니다.

CSV 구분 기호
결과

변환된 파일과 미리보기가 여기에 표시됩니다.

준비되었습니다. 변환할 테이블 파일을 선택하세요.

데이터 변환 방식

  • 객체 배열은 행과 열로 변환되며, 중첩된 객체는 address.city와 같이 점으로 연결된 키 형태의 열로 평탄화(Flatten)됩니다.
  • 쉼표(콤마), 세미콜론, 탭 중에서 데이터에 맞는 구분 기호(Delimiter)를 선택하세요.

테이블 파일 변환 작업은 브라우저 내에서 처리됩니다. BroBroGo 서버로 어떠한 데이터도 전송되지 않습니다.

자주 묻는 질문(FAQ)

JSON 파일을 CSV(으)로 어떻게 변환하나요?

JSON 파일을 끌어다 놓고 변환을 클릭하세요. 몇 초 만에 변환 결과 미리보기와 함께 CSV 파일을 다운로드할 수 있습니다. 모든 작업은 사용자의 기기 내에서 실행됩니다.

변환 가능한 파일 크기 제한이 있나요?

파일당 최대 8MB, 10,000행, 200열까지 지원합니다. 이보다 큰 데이터 세트는 미리 작은 파일로 나누어 변환하는 것이 좋습니다.

JSON에서 CSV 변환: 구조를 평평하게 만드는 방법

JSON과 CSV는 데이터 저장 방식이 근본적으로 다르다. JSON은 계층적 구조와 여러 데이터 타입(숫자, 불리언, null 등)을 지원하지만, CSV는 모든 값을 문자열로 저장하며 중첩 구조가 없다. 이 페이지의 변환기는 JSON 파일을 업로드하면 브라우저 내에서 전적으로 처리하여 CSV로 내보낸다. 업로드된 데이터는 서버로 전송되지 않으므로 개인정보 보호에 유리하다.

주요 차이점: 형식 정보의 손실

변환 과정에서 다음 정보가 모두 사라진다:

  • 데이터 타입: JSON의 숫자, 불리언, null은 CSV에서 모두 문자열이 된다. 예를 들어 123"123"으로, true"true"로 변환된다.
  • 중첩 구조: 객체 안의 객체는 점 표기법(dot-path)으로 평평해진다. 예: address.city 형태.
  • 배열 처리: 객체 배열은 행으로 변환, 배열의 배열은 각 내부 배열이 행이 된다.
  • 선행 0 손실: JSON의 "00123"은 숫자처럼 보이면 CSV에서 123으로 저장될 가능성이 높다. 따옴표로 명시된 문자열이 아니면 자동으로 숫자로 해석되기 때문이다.
  • 쉼표와 줄바꿈 처리: CSV 구분자와 충돌하는 값은 자동으로 큰따옴표로 감싸진다.

변환 규칙과 제한 사항

이 도구는 테이블 형태의 JSON만 처리한다. 조건:

  • 단일 객체 배열(예: [{"name":"a","age":1}, {...}]) → 각 객체가 행, 키가 열.
  • 배열의 배열(예: [["name","age"],["a",1]]) → 첫 번째 행이 헤더가 될 수도 있지만, 정확한 처리는 입력 구조에 따름.
  • 위 형태가 아니면 오류 메시지: "This JSON is invalid or not table-shaped."

기타 오류 상황:

오류 조건 표시 메시지 (원문)
파일이 너무 큼 "This file is too large. Use a file under ‹max›."
지원되지 않는 형식 "Choose a CSV, JSON or XLSX file."
변환 실패 "Could not convert this file."
취소됨 "Conversion cancelled."
시간 초과 "This conversion is taking too long. Try a smaller file."

모든 처리는 클라이언트 사이드에서 이루어지므로 변환 중 중단하면 안전하다.

CSV 구분자 선택의 중요성

사용자는 출력 CSV의 구분자를 콤마(,), 세미콜론(;), 탭(\t) 중 선택할 수 있다. 콤마가 기본값이다.

구분자를 잘못 선택하면 열이 제대로 나뉘지 않거나 데이터가 깨질 수 있다. 특히 숫자에 천 단위 쉼표가 포함된 경우 콤마 구분자를 쓰면 혼란이 발생한다.

자주 발생하는 문제와 주의사항

  • 중첩 객체 평면화: {"person": {"name": "Kim", "age": 30}}person.name, person.age 열로 변환. 깊이가 깊어지면 열 이름이 길어지고 CSV의 가독성이 떨어진다.
  • 배열이 포함된 객체: {"tags": ["a","b"]} → 배열 자체가 하나의 문자열로 저장된다. 이 도구는 기본적으로 배열을 문자열화하지 않고 행을 늘리지 않는다(배열의 배열은 예외).
  • 빈 값과 null: JSON의 null은 빈 문자열 ""로 변환된다. CSV에서 null이라는 문자열을 원하면 변환 전에 값을 수정해야 한다.
  • 인코딩: 모든 텍스트는 UTF-8로 처리된다. Excel에서 CSV를 열 때 UTF-8을 인식하지 못하면 한글이 깨질 수 있으므로 BOM(Byte Order Mark)이 필요할 수 있지만, 이 도구는 자체적으로 BOM을 추가하지 않는다. 필요한 경우 변환 후 편집기로 추가해야 한다.

FAQ

Q: JSON이 테이블 형태가 아닌 경우 어떻게 되나요?
A: This JSON is invalid or not table-shaped. 오류가 표시됩니다. 단일 객체 배열 또는 배열의 배열 형태여야 합니다.

Q: 중첩된 객체는 어떻게 표현되나요?
A: 점 표기법(dot-path)을 사용해 평평해집니다. 예: address.city, address.zip.

Q: 변환 중 데이터가 서버로 전송되나요?
A: 아니요. 모든 처리는 브라우저 내에서 이루어집니다. 파일은 서버에 전혀 업로드되지 않습니다.

Q: 최대 파일 크기는 얼마인가요?
A: 파일 크기는 최대 8MB입니다. 8MB를 초과하면 This file is too large. Use a file under ‹max›. 오류 메시지가 나타납니다.

Q: 숫자 앞의 0이 사라지는 이유는 무엇인가요?
A: JSON에서 값이 숫자로 인식되면 선행 0이 제거됩니다. 이를 방지하려면 JSON에서 값을 문자열로 명시하거나, 변환 후 따옴표 처리를 확인해야 합니다.

Q: 구분자를 바꿀 수 있나요?
A: 네, 콤마, 세미콜론, 탭 중 선택 가능합니다.