가이드

JSON을 CSV로 변환하는 방법

유효한 JSON 객체 또는 객체로 시작하는 비어 있지 않은 배열을 입력하면 CSV 텍스트로 변환할 수 있습니다. 구분 기호를 지정하지 않으면 쉼표가 사용됩니다.

도구 JSON to CSV 변환기

입력 구조와 CSV 결과를 먼저 이해하기

JSON 텍스트를 CSV 형식으로 바꾸려면 먼저 최상위 구조를 살펴보세요. 이 변환기는 최상위 JSON 객체를 한 개의 레코드로 처리하고, 객체로 시작하는 비어 있지 않은 배열을 여러 레코드로 다룹니다. 변환된 결과는 CSV 텍스트이므로 표 계산 프로그램이나 다른 데이터 처리 과정에 붙여 넣기 전에 헤더와 행의 배열을 확인하는 편이 좋습니다.

입력 데이터의 필드 구성이 레코드마다 달라도 헤더를 만드는 방식을 알면 결과를 읽기 쉽습니다. 처리된 레코드에서 필드 이름이 처음 나타난 순서가 헤더 순서가 되고, 뒤의 레코드에 없는 필드는 해당 행에서 빈 문자열로 남습니다. 따라서 변환 전에는 배열의 첫 항목과 뒤따르는 항목이 기대한 레코드 구조를 갖추었는지 함께 확인하세요.

구분 기호는 별도로 지정하지 않으면 쉼표입니다. 쉼표가 아닌 문자를 쓰려는 경우에는 입력할 값의 형태도 살펴봐야 합니다. 여러 문자를 지정하면 앞의 한 문자만 사용되고, 빈 값을 지정하면 다시 쉼표가 적용됩니다.

JSON 입력을 CSV 텍스트로 바꾸는 순서

  1. 변환할 JSON 텍스트를 입력 영역에 붙여 넣습니다. 입력 영역이 비어 있거나 공백만 있으면 처리되지 않으므로, 객체나 배열로 이루어진 내용을 넣어야 합니다. 줄바꿈과 들여쓰기는 JSON 텍스트 안에서 확인할 수 있지만, 괄호와 따옴표의 짝도 함께 점검하세요.

  2. 최상위 값의 형태를 확인합니다. 객체 하나를 넣으면 한 레코드가 됩니다. 여러 레코드를 넣을 때는 비어 있지 않은 배열을 사용하고, 배열의 첫 항목을 객체로 배치합니다. 빈 배열, 객체로 시작하지 않는 배열, 문자열이나 숫자처럼 객체와 배열이 아닌 최상위 값은 검증 단계에서 처리되지 않습니다.

  3. 배열을 사용할 때는 뒤의 항목도 살펴봅니다. 첫 항목이 객체이면 초기 확인을 통과할 수 있지만, 뒤의 항목은 객체인지 별도로 확인되지 않습니다. 뒤에 숫자, null, 배열 같은 값이 섞이면 변환 결과가 나오지 않고 처리에 실패할 수 있으므로, 각 항목을 레코드로 사용할 수 있는지 입력 전에 확인하세요.

  4. 필요할 때 구분 기호를 지정합니다. 값을 입력하지 않거나 빈 값을 사용하면 쉼표가 선택됩니다. 두 글자 이상을 입력하면 첫 글자만 구분 기호로 사용되므로, 세미콜론이나 탭처럼 쓰려는 구분 방식을 한 문자 기준으로 정한 뒤 진행하세요.

  5. 변환을 실행합니다. JSON 문법이 올바르면 CSV 텍스트가 만들어집니다. 헤더에는 처리된 레코드에서 발견된 필드 이름이 처음 등장한 순서로 들어가고, 헤더 다음에는 처리된 레코드마다 한 행이 이어집니다. 입력이 객체 하나라면 데이터 행도 한 줄입니다.

  6. 생성된 CSV를 사용하기 전에 행과 열을 확인합니다. 어떤 레코드에 헤더 필드가 없으면 그 열의 값은 빈 문자열입니다. 숫자나 다른 값은 CSV 행에 기록되기 전에 텍스트로 변환되므로, 결과에 표시된 표현이 다음 작업에서 기대한 형태인지 살펴보세요. JSON 문법 오류가 있으면 변환 대신 거부되므로 쉼표, 중괄호, 대괄호, 따옴표의 위치를 다시 검사합니다.

헤더, 행, 값의 의미를 확인하는 법

결과의 첫 행은 처리된 레코드에서 모은 필드 이름으로 구성된 CSV 헤더입니다. 예를 들어 첫 레코드에서 name이 먼저 나오고 age가 다음에 나오면 그 순서가 헤더에 반영됩니다. 다음 레코드에서 city가 처음 발견되면 city가 그 뒤에 추가되는 방식으로 헤더가 확장됩니다. 레코드별 필드 순서가 다를 때에는 필드가 처음 발견된 위치를 기준으로 결과를 읽으세요.

헤더에 있는 필드가 특정 레코드에 없으면 그 행의 해당 위치는 빈 문자열입니다. 이 값은 입력에 없는 필드를 새 값으로 채운 것이 아니므로, 빈 칸을 0이나 다른 기본값으로 해석할지는 CSV를 사용하는 쪽에서 별도로 결정해야 합니다. 변환기는 처리된 레코드마다 한 행을 작성하므로, 행 수를 세어 입력 레코드 수와 비교하면 누락 여부를 살피는 데 도움이 됩니다.

최상위 객체는 한 행으로 이해할 수 있지만, 최상위 배열은 빈 상태가 아니어야 하며 첫 항목이 객체여야 합니다. 첫 항목 뒤의 값은 객체인지 따로 검사되지 않아, 뒤에 호환되지 않는 값이 있으면 깔끔한 변환 결과 대신 처리 실패가 생길 수 있습니다. 배열을 입력할 때는 첫 항목만 보지 말고 뒤의 값도 확인하세요.

중첩된 객체나 배열이 여러 CSV 열로 자동 분해된다고 전제해서는 안 됩니다. 확인된 동작은 CSV 행에 포함되는 값을 텍스트로 바꾸는 것이므로, 중첩 값을 넣었다면 결과에 표시된 텍스트 표현을 직접 살펴본 뒤 후속 처리를 정하세요. JSON이 유효해 보여도 최상위 조건이나 배열 항목 조건에 맞지 않으면 결과가 생성되지 않을 수 있습니다.

사용 예시

이름과 나이를 담은 JSON 객체 하나를 CSV 한 행으로 바꾸려는 상황입니다.

입력값 {"name":"민지","age":20}을 넣고 구분 기호를 지정하지 않은 채 변환을 실행합니다.

헤더 행에는 name과 age가 이 순서로 들어가고, 그 아래에는 민지와 20을 텍스트 값으로 포함한 데이터 행 한 줄이 생성됩니다.

제한 사항

  • 배열의 첫 항목 뒤에 있는 값은 객체인지 별도로 검증되지 않아 처리 실패가 발생할 수 있으며, 중첩된 객체나 배열이 여러 CSV 열로 분해된다고 보장되지 않습니다. 행에 들어가는 값은 텍스트로 변환됩니다.

자주 발생하는 오류

  • 입력란이 비어 있거나 JSON 문법이 맞지 않으면 처리가 거부됩니다. 공백만 있는 내용을 지우고 유효한 객체 또는 조건에 맞는 배열을 다시 입력한 다음, 쉼표와 따옴표의 짝을 확인하세요.

자주 묻는 질문

JSON 배열도 CSV로 변환할 수 있나요?

비어 있지 않은 배열이며 첫 항목이 객체라면 입력할 수 있습니다. 다만 뒤의 항목은 객체인지 따로 확인되지 않으므로, 숫자나 null 또는 배열이 포함되면 처리에 실패할 수 있습니다.

쉼표 대신 다른 구분 기호를 사용할 수 있나요?

입력하지 않거나 빈 값을 지정하면 쉼표가 사용됩니다. 다른 값을 지정할 때 여러 문자를 넣으면 앞의 한 문자만 구분 기호로 남습니다.

레코드마다 필드가 다르면 결과는 어떻게 되나요?

헤더 필드가 없는 레코드의 해당 CSV 값은 빈 문자열로 작성됩니다. 헤더에는 처리된 레코드에서 필드 이름이 처음 나타난 순서가 반영됩니다.

도구

JSON to CSV 변환기