바로툴 계산·활용 가이드

JSON과 CSV를 안전하게 변환하는 방법

JSON과 CSV는 모두 표 형태 데이터를 담을 수 있지만 구조가 다릅니다. 변환 전에 JSON 객체의 키를 맞추고 CSV의 헤더와 인용규칙을 확인해야 열 밀림과 데이터 손실을 줄일 수 있습니다.

JSON↔CSV 변환기 바로 사용하기
01

변환하기 좋은 JSON 구조

CSV로 바꾸기 가장 쉬운 형태는 같은 키를 가진 객체의 배열입니다. 예를 들어 [{"name":"Baro","score":95}]처럼 각 객체가 한 행이 되고 키가 열 이름이 됩니다.

객체마다 키가 다르면 빈 셀이 생길 수 있습니다. 변환 전에 필수 키와 값의 자료형을 가능한 한 통일하세요.

02

CSV 헤더와 인용규칙

CSV 첫 행은 보통 열 이름입니다. 값에 쉼표, 큰따옴표 또는 줄바꿈이 있으면 큰따옴표로 감싸고 값 안의 큰따옴표는 두 번 써야 합니다.

단순히 문자열을 쉼표로 나누면 주소나 문장 속 쉼표 때문에 열이 밀릴 수 있으므로 CSV 파서를 사용하는 것이 안전합니다.

  • 첫 행: 열 이름
  • 쉼표·줄바꿈 포함 값: 큰따옴표로 감싸기
  • 값 안 큰따옴표: 두 번 표기
03

중첩 객체와 배열 처리

CSV 한 셀은 계층구조를 직접 표현하지 못합니다. JSON 안의 객체나 배열은 한 셀의 JSON 문자열로 보존하거나 필요한 필드만 평탄화해야 합니다.

다시 JSON으로 복원할 계획이라면 어떤 열이 숫자·불리언·중첩 JSON인지 별도 규칙을 남기세요. CSV 값은 변환 과정에서 문자열로 해석될 수 있습니다.

04

엑셀에서 열기 전 확인할 것

주민번호·우편번호·상품코드처럼 앞자리 0이 중요한 값은 스프레드시트가 숫자로 자동변환할 수 있습니다. 긴 숫자는 지수표기로 바뀔 수도 있습니다.

민감정보가 포함된 원문은 외부 변환 사이트에 업로드하지 말고 로컬 또는 브라우저 처리 여부를 확인하세요. 변환 후에는 행 수, 헤더 수와 대표 샘플을 원본과 대조하세요.

05

변환 전 데이터 구조와 인코딩 확인

JSON이 객체 하나인지 객체 배열인지 확인하고 CSV의 한 행으로 만들 단위를 정하세요. 같은 키를 가진 평평한 객체 배열이 가장 안정적이며, 객체마다 키가 다르면 전체 키의 합을 헤더로 만들지 누락키를 오류로 볼지 결정해야 합니다. 숫자·불리언·null·빈 문자열을 변환 뒤 어떤 값으로 표현할지도 규칙을 남깁니다.

한글이 포함된 CSV는 UTF-8 인코딩을 기본으로 하되 사용하는 스프레드시트가 BOM을 요구하는지 확인하세요. 구분자가 쉼표인지 세미콜론인지, 소수점 기호와 날짜형식이 지역설정에 따라 달라지는지도 중요합니다. 원본은 복사해 보관하고 민감정보는 외부로 전송하지 않도록 처리방식을 확인합니다.

  • JSON의 행 단위와 필수키 정의
  • null·빈 문자열·자료형 변환규칙 작성
  • UTF-8·구분자·지역설정 확인
06

중첩 객체와 배열을 평탄화하는 방법

user.address.city 같은 중첩 객체는 점 표기 열로 평탄화하거나 address 전체를 JSON 문자열로 한 셀에 보존할 수 있습니다. items처럼 길이가 다른 배열은 한 셀의 JSON으로 둘지, 별도의 상세 CSV로 분리해 공통 ID로 연결할지 정합니다. 배열 원소를 열로 무한히 펼치면 길이가 달라질 때 구조가 깨질 수 있습니다.

다시 JSON으로 복원해야 한다면 평탄화 구분자, 배열 처리와 자료형 정보를 함께 저장하세요. 점이 원래 키 이름에 들어 있다면 충돌할 수 있으므로 이스케이프 규칙이 필요합니다. 부모 CSV와 자식 CSV를 나누는 경우 고유 ID가 비어 있거나 중복되지 않는지 검증해야 관계를 잃지 않습니다.

  • 중첩객체는 점 표기 또는 JSON 셀로 보존
  • 가변 배열은 상세 테이블 분리 검토
  • 왕복변환용 자료형·구분자·ID 규칙 유지
07

쉼표·따옴표·줄바꿈과 엑셀 자동변환 방지

CSV 값에 쉼표, 큰따옴표 또는 줄바꿈이 있으면 값을 큰따옴표로 감싸고 내부 큰따옴표는 두 번 표기해야 합니다. 단순 split(',')은 주소와 설명문을 여러 열로 잘못 나눕니다. 내보낸 파일을 다시 읽어 원본 문자열이 복원되는지 대표행으로 확인하세요.

우편번호·상품코드의 앞자리 0, 16자리 이상 숫자, 1-2 같은 값은 스프레드시트가 숫자·지수·날짜로 자동변환할 수 있습니다. CSV 자체에는 강한 자료형이 없으므로 가져오기 기능에서 해당 열을 텍스트로 지정하거나 XLSX 같은 형식을 고려하세요. 수식으로 시작하는 외부 데이터는 CSV 주입 위험이 있어 신뢰할 수 없는 값의 첫 문자를 안전하게 처리해야 합니다.

  • 표준 CSV 인용규칙 사용
  • 코드·긴 숫자·날짜형 값은 텍스트로 가져오기
  • 신뢰할 수 없는 수식형 값의 CSV 주입 방지
08

행 수·헤더·왕복변환 최종 검증

변환 전후 전체 행 수, 고유키 수, 헤더 수, null 개수와 숫자 합계를 비교하세요. 첫 행만 보는 대신 처음·중간·마지막과 특수문자가 있는 샘플을 검사합니다. 대용량 파일은 일부가 잘리거나 브라우저 메모리를 많이 쓸 수 있으므로 파일 크기와 처리한 행 수를 기록하고 중요한 작업은 작은 복사본으로 먼저 시험합니다.

가능하면 JSON→CSV→JSON으로 왕복한 결과를 원본의 정렬된 구조와 비교하세요. CSV는 자료형과 중첩정보를 잃을 수 있어 완전 동일하지 않을 수 있지만 어떤 차이를 허용했는지 문서화해야 합니다. 최종파일 이름에 날짜·버전·인코딩을 표시하고 원본과 결과를 분리하며, 운영 데이터 가져오기는 백업과 검증환경을 거쳐 진행합니다.

운영 시스템에 가져올 때는 새 레코드 추가와 기존 레코드 수정의 기준키를 명확히 정하세요. 고유키가 비어 있거나 중복된 CSV를 바로 반영하면 중복 생성이나 잘못된 덮어쓰기가 생길 수 있으므로 검증보고서를 먼저 확인합니다.

  • 행·키·헤더·null·합계 비교
  • 특수문자 포함 대표행 검수
  • 운영 반영 전 백업과 시험 가져오기
가이드 이용 안내

본문의 예시는 도구의 사용 방법을 설명하기 위한 것입니다. 실제 자료에 적용할 때는 입력 조건과 지원 범위, 결과를 확인하세요.