CSV 텍스트를 JSON으로 변환하는 방법
CSV 텍스트를 입력한 뒤 첫 행을 필드 이름으로 쓸지 선택하고 변환을 실행하면 JSON 배열과 레코드 수를 확인할 수 있습니다. 첫 행도 데이터라면 헤더 매핑을 꺼야 합니다.
CSV 텍스트를 JSON으로 바꾸는 원리
CSV 텍스트를 JSON 배열 형태로 정리해야 할 때 이 도구를 사용할 수 있습니다. 별도의 표 파일을 분석하는 절차가 아니라, 사용자가 입력 영역에 제공한 CSV 내용을 읽고 행과 셀을 바탕으로 결과를 만드는 방식입니다. 연락처 목록, 상품 목록처럼 각 행이 하나의 항목을 나타내는 자료를 확인하거나 다른 작업에 넘길 JSON 형태로 바꾸고 싶을 때 유용합니다.
가장 먼저 결정할 것은 첫 행의 역할입니다. 첫 행에 이름,이메일처럼 열 이름이 들어 있다면 기본 헤더 매핑을 유지하는 흐름이 자연스럽습니다. 이 설정에서는 두 행 이상이 있을 때 첫 행이 필드 이름으로 사용되고, 이후 행이 레코드로 변환됩니다. 반대로 첫 행도 실제 데이터라면 헤더 매핑을 꺼야 합니다. 그러면 첫 행을 필드 이름으로 따로 예약하지 않고 파싱된 각 행을 데이터로 처리합니다.
JSON 출력은 배열로 제공되며, 변환이 끝나면 만들어진 레코드 수를 함께 확인할 수 있습니다. 출력이 읽기 어렵다면 들여쓰기 수준을 숫자로 지정할 수 있고, 별도 설정이 없을 때의 기본값은 2입니다. 따라서 입력을 붙여 넣기 전에 데이터의 첫 행이 제목인지 실제 자료인지 정하면 뒤의 결과를 해석하기가 수월합니다.
CSV를 입력하고 설정을 확인하는 순서
-
변환할 CSV 텍스트를 준비합니다. 예를 들어 첫 행에 열 이름이 있고 다음 행에 자료가 있다면, 각 행이 어떤 의미를 갖는지 먼저 확인합니다. 이 도구에는 입력 영역에 CSV 내용을 텍스트로 제공합니다. 빈 입력을 그대로 실행하면 변환할 내용이 없는 경우로 처리됩니다.
-
CSV 텍스트를 입력 영역에 붙여 넣습니다. 행 순서와 열 이름을 결과에서도 유지하고 싶은지 살펴보세요. 첫 행이
이름,이메일처럼 열 이름을 나타내는 경우에는 기본 헤더 매핑을 유지합니다. 두 행 이상이면 첫 행이 필드 이름이 되고 나머지 행이 레코드가 됩니다. -
첫 행을 실제 데이터로 포함해야 하는 경우에는 헤더 매핑을 끕니다. 이 설정에서는 첫 행을 필드 이름으로 소비하지 않고, 파싱된 모든 행을 데이터로 취급합니다. 따라서 열 이름을 사용해 읽기 쉬운 필드를 만들고 싶은 자료와, 첫 행까지 자료로 보존해야 하는 자료를 같은 방식으로 처리하지 않도록 주의합니다.
-
JSON 출력의 들여쓰기 수준을 정합니다. 숫자 설정을 사용하면 출력 형식을 보기 좋게 조정할 수 있으며, 값을 따로 바꾸지 않으면 기본 들여쓰기 수준인 2가 적용됩니다. 들여쓰기는 결과의 표시 형식을 조정하는 설정이므로, 행의 수나 필드 매핑 방식과는 구분해서 선택합니다.
-
변환을 실행하고 JSON 배열을 확인합니다. 성공적인 변환에서는 결과로 만들어진 레코드 수가 표시됩니다. 이 수를 입력 행의 수와 비교할 때는 헤더 매핑 여부를 함께 고려해야 합니다. 기본 헤더 매핑을 사용했다면 첫 행이 필드 이름으로 사용되므로 결과 레코드에 포함되지 않습니다. 헤더 매핑을 껐다면 첫 행을 포함한 각 행이 데이터로 처리됩니다.
-
결과가 예상과 다르면 먼저 헤더 매핑 설정을 다시 확인합니다. 첫 행이 제목인데 매핑을 끄면 그 행도 데이터로 들어가고, 첫 행이 데이터인데 기본 매핑을 사용하면 그 행이 필드 이름으로 사용될 수 있습니다. 그다음 표시된 레코드 수와 JSON 배열의 항목 수를 함께 살펴보면서 입력한 행이 어떤 방식으로 반영되었는지 확인합니다.
-
입력이 비어 있거나 공백만 있다면 빈 JSON 배열과 0건이 반환됩니다. 이 경우에는 변환할 CSV 텍스트가 실제로 입력 영역에 들어갔는지 확인합니다. 처리 중 예외가 발생한 경우에도 빈 JSON 배열과 0건이 반환될 수 있지만, 이때는 오류 설명이 함께 제공될 수 있습니다. 그러므로 빈 배열만 보고 입력이 비어 있었다고 단정하지 말고 오류 설명의 유무도 확인합니다.
-
결과를 다른 곳에서 사용할 때는 JSON 배열 안의 각 항목이 행에 대응하는지 확인합니다. 이 변환은 제공한 CSV 텍스트의 행과 셀을 바탕으로 평면적인 레코드를 만드는 작업입니다. 중첩된 구조가 필요하다면 이 결과를 확인한 뒤 별도의 후속 작업을 계획해야 하며, 이 도구가 자동으로 더 복잡한 구조를 만들어 준다고 가정하지 않는 편이 좋습니다.
JSON 배열과 레코드 수를 해석하는 법
결과는 JSON 배열과 레코드 수를 함께 읽는 것이 좋습니다. 기본 헤더 매핑을 사용한 경우 첫 행은 필드 이름으로 사용되므로 배열의 레코드에는 들어가지 않습니다. 예를 들어 첫 행이 이름,이메일이고 그 뒤에 두 개의 데이터 행이 있다면, 결과 배열은 두 레코드로 구성되는 형태를 예상할 수 있습니다. 이때 레코드 수는 결과에 만들어진 항목의 개수를 나타냅니다.
헤더 매핑을 끈 경우에는 해석이 달라집니다. 첫 행도 다른 행과 마찬가지로 데이터로 처리되므로, 결과에 포함되는 행의 범위가 기본 설정과 달라질 수 있습니다. 따라서 같은 CSV 텍스트라도 헤더 매핑을 켰는지 껐는지에 따라 필드 이름을 사용하는 방식과 레코드 수가 달라질 수 있습니다. 결과를 비교할 때는 JSON 배열만 보지 말고 선택한 설정도 함께 기록해 두는 것이 좋습니다.
빈 JSON 배열은 두 가지 상황에서 나타날 수 있습니다. 입력이 비어 있거나 공백뿐이면 빈 배열과 0건이 정상적으로 반환됩니다. 반면 처리 중 예외가 발생해도 빈 배열과 0건이 반환될 수 있으며, 이 경우 오류 설명이 함께 제공될 수 있습니다. 따라서 결과가 비어 있으면 입력 영역에 내용이 있었는지, 오류 설명이 표시되었는지 순서대로 확인합니다.
이 도구가 다루는 것은 제공한 CSV 텍스트입니다. 결과는 행과 셀을 바탕으로 한 평면적인 JSON 데이터이므로, 숫자나 날짜를 별도의 자료형으로 바꾸거나 중첩 객체를 자동으로 구성하는 기능까지 기대해서는 안 됩니다. 결과를 저장하거나 후속 시스템에 전달하기 전에는 각 값이 의도한 필드에 들어갔는지, 불필요한 행을 포함하지 않았는지 검토하세요.
들여쓰기는 JSON을 읽는 사람에게 보이는 형식에 영향을 줍니다. 기본값인 2를 사용해도 되고, 숫자 설정을 조정해 결과를 더 compact하게 또는 더 넓게 표시할 수도 있습니다. 다만 들여쓰기 수준을 바꾸는 것은 헤더 매핑이나 레코드 생성 규칙을 바꾸지 않습니다. 결과의 내용과 표시 형식을 분리해 판단하면 설정을 잘못 해석할 가능성을 줄일 수 있습니다.
사용 예시
연락처 표의 CSV 텍스트를 붙여 넣어 이름과 이메일 필드를 가진 JSON 레코드로 정리하려는 상황입니다.
이름,이메일을 첫 행으로 두고 민수,minsu@example.com, 지연,jiyeon@example.com을 다음 행에 둔 CSV 텍스트를 입력한 뒤 기본 헤더 매핑으로 변환합니다. 결과에서 첫 행의 두 항목이 필드 이름으로 사용되고 뒤의 두 데이터 행이 배열의 레코드가 되는지 확인합니다.
JSON 배열 안에 행별 평면 레코드가 들어가고, 생성된 레코드 수가 함께 표시되는 형태입니다.
제한 사항
- 변환 대상은 입력 영역에 제공한 CSV 텍스트이며, 결과는 행과 셀을 바탕으로 한 평면적인 JSON 데이터입니다. 숫자나 날짜의 자동 자료형 변환, 중첩 객체 구성까지 지원한다고 볼 수는 없습니다.
자주 발생하는 오류
- CSV 텍스트를 입력 영역에 붙여 넣지 않은 채 실행하면 빈 입력으로 처리되어 빈 JSON 배열과 0건이 반환될 수 있습니다. 변환 전에 입력 영역에 실제 CSV 내용이 들어갔는지 확인하고 다시 실행하세요.
자주 묻는 질문
첫 번째 CSV 행을 JSON 필드 이름으로 사용할 수 있나요?
두 행 이상인 CSV라면 기본 헤더 매핑을 사용할 때 첫 행이 필드 이름으로 사용되고, 뒤의 행이 레코드로 변환됩니다.
첫 번째 행도 데이터에 포함하려면 어떻게 하나요?
첫 행도 데이터로 보존해야 한다면 헤더 매핑을 끄세요. 그러면 첫 행을 필드 이름으로 따로 사용하지 않고 파싱된 각 행을 데이터로 처리합니다.
변환 결과가 빈 배열이면 무엇을 확인해야 하나요?
입력이 비어 있거나 공백뿐이면 빈 JSON 배열과 0건이 반환됩니다. 처리 중 예외가 있었다면 같은 결과와 함께 오류 설명이 제공될 수 있으므로, 빈 배열일 때 오류 설명도 함께 확인하세요.