it-box

JSON → CSV 변환기

헤더를 자동으로 감지해 JSON 데이터를 CSV로 변환합니다.

JSON → CSV 변환기 도구 열기

객체 배열로 된 JSON을 CSV 표로 바꿉니다. 첫 줄 헤더는 모든 객체에서 모은 키 이름입니다.

사용 순서

  1. 입력 칸에 객체 배열 JSON을 붙여 넣습니다. 예를 들면 [{"name":"Lee"}] 형태입니다.
  2. 결과 칸 첫 줄의 헤더 순서가 객체에 나온 키 순서인지 확인합니다.
  3. 결과 칸의 내용을 복사해 파일이나 스프레드시트에 붙여 넣습니다.

예시

[{"name":"Kim, Min","age":30},{"name":"Lee","age":null}]을 넣으면 name,age / "Kim, Min",30 / Lee,null 세 줄의 CSV가 나옵니다.

한계

객체의 배열만 받습니다. 배열이 아닌 입력은 오류 메시지 없이 결과가 비어 있습니다. 중첩 객체는 [object Object]로, 배열은 쉼표로 이어진 문자열로 나옵니다. 큰따옴표는 두 번 쓰지 않고 \"처럼 백슬래시를 붙이며, 줄바꿈은 \n 문자로 바뀝니다. 이는 RFC 4180 방식과 달라 일반 CSV 파서가 값을 잘못 읽을 수 있습니다.

보안 주의

결과 CSV를 스프레드시트에서 열면 =, +, -, @로 시작하는 값이 수식으로 해석될 수 있습니다. 외부에서 받은 데이터를 변환해 여는 경우에는 셀 값이 수식 기호로 시작하지 않는지 확인하고, 필요하면 앞에 작은따옴표를 붙이세요.

배경 지식

CSV는 쉼표로 열을 구분하고 줄바꿈으로 행을 구분하는 단순한 표 형식입니다. 값에 쉼표나 줄바꿈이 들어가면 큰따옴표로 감싸야 하고, 값 안의 큰따옴표는 두 번 써서 표현하는 것이 표준입니다. 이 규칙을 RFC 4180에서 정의하며, 대부분의 CSV 파서가 이 방식을 기준으로 동작합니다.

JSON의 객체 배열을 CSV로 바꾸려면 모든 객체의 키를 모아 헤더를 만들고, 각 객체에서 같은 순서로 값을 꺼내야 합니다. 어떤 객체에 해당 키가 없으면 그 칸은 빈 값이 됩니다. 이 도구는 여러 객체에서 나온 키를 처음 나온 순서대로 모읍니다. 그래서 특정 키가 뒤쪽 객체에만 나오면 그 열은 헤더의 맨 뒤에 붙습니다.

중첩된 JSON은 CSV 한 칸에 담기 어렵습니다. 평면화하여 user.name처럼 키를 점으로 이어 붙이거나, 필요한 필드만 골라 새 배열을 만든 뒤 변환하는 방식이 보통 쓰입니다. 데이터 분석 도구로 넘기기 전에 이 단계를 거치면 열 구조가 예측 가능해집니다. 배열 값은 tags.0, tags.1처럼 인덱스를 붙여 펼치는 방식이 흔합니다.

자주 묻는 질문

객체마다 키가 다르면 열은 어떻게 되나요?

모든 객체의 키를 합친 열이 만들어지고, 해당 키가 없는 행의 칸은 비어 있습니다. 예를 들어 {"a":1}과 {"b":2}를 변환하면 헤더는 a,b가 되고 행은 1, 빈 칸 / 빈 칸, 2 형태로 나옵니다.

결과 CSV를 열면 한글이 깨지나요?

이 도구는 입력 문자열을 그대로 출력하므로 한글이 변형되지는 않습니다. 다만 CSV 파일에는 인코딩 정보가 없어서, 파일을 여는 프로그램에서 UTF-8로 지정해야 할 때가 있습니다.

객체 하나만 넣으면 어떻게 되나요?

객체 하나는 배열이 아니므로 변환이 실패하고 결과 칸이 비어 있습니다. 메시지가 나오지 않으니 객체를 대괄호로 감싸 배열 형태로 바꿔 넣으세요.