앱 소개
CSV와 JSON 변환 — 따옴표 안의 쉼표가 열을 늘리지 않게 하려면
CSV 첫 행을 열 이름으로 읽어 JSON 객체 배열로 바꾸거나, 평평한 JSON 객체 배열을 CSV로 바꾼다. 따옴표 안의 쉼표·줄바꿈과 누락 값을 어떻게 처리하는지 예시로 확인한다.
CSV와 JSON을 붙여 넣기 전에 열 구조와 값의 의미가 보존되는지 직접 확인하도록 돕는다.
CSV의 쉼표는 항상 열 경계가 아니다. 큰따옴표로 감싼 필드 안에서는 쉼표와 줄바꿈도 값에 속한다. 이 변환기는 그 규칙을 처리하지만 CSV의 숫자처럼 보이는 값도 문자열로 유지한다.
예제 CSV를 변환하고 결과에서 행·열 수와 우편번호 같은 값의 형태를 확인한다.
먼저 답하면
이름,메모 아래에 민지,"서울, 강남"이 있다면 두 번째 행은 두 열이다. 큰따옴표 안의 쉼표를 열 경계로 자르면 세 열이 되어 데이터가 틀어진다. CSV ↔ JSON 변환기는 인용된 필드의 쉼표·줄바꿈과 연속된 큰따옴표를 구분한다. 변환 결과에는 행·열 수도 표시하므로 붙여 넣은 표가 예상한 모양인지 바로 살필 수 있다.
CSV에서 JSON으로 바꾸는 순서
CSV의 첫 행에는 비어 있거나 중복되지 않은 열 이름을 쓴다. 예를 들어 이름,우편번호 다음에 민지,01234를 넣으면 JSON 객체 배열의 첫 항목은 이름과 우편번호를 키로 갖는다. 이때 01234는 숫자 1234가 아니라 **문자열 "01234"**로 나온다. 앞자리 0이 필요한 식별자를 임의로 숫자로 바꾸지 않기 때문이다. 실제 계산에 쓸 숫자 열이라면 변환 뒤 데이터 유형을 별도로 확인해야 한다.
구분자는 쉼표, 세미콜론, 탭 중에서 고를 수 있다. 파일에서 사용한 구분자와 화면 설정이 다르면 열 수가 예상과 달라진다. 인용 필드에 줄바꿈이 있어도 한 행의 값으로 읽으므로, 화면의 줄 수와 결과의 데이터 행 수가 같지 않을 수 있다.
JSON에서 CSV로 바꾸는 순서
JSON 입력은 객체의 배열이어야 한다. 예를 들어 [ {"이름":"민지","도시":"서울"}, {"이름":"준호"} ]을 넣으면 이름과 도시 열을 만들고 두 번째 사람의 도시 칸은 빈 칸으로 둔다. null도 빈 칸이 된다. 빈 문자열과 null을 구별해야 하는 자료라면 CSV로 옮기기 전에 별도 표시 값을 정해 두는 편이 안전하다.
중첩 객체나 배열은 하나의 CSV 칸에 안정적으로 펼칠 규칙이 없으므로 이 도구는 변환하지 않는다. JSON 전체가 평평한 객체 배열인지 먼저 확인한다. 결과에 쉼표나 줄바꿈이 든 값은 CSV 따옴표 규칙으로 감싸고, 값 안의 큰따옴표는 두 번 써서 보존한다.
복사하기 전에 확인할 것
- 결과의 행·열 수가 원본 표의 기대값과 맞는지 확인한다. 데이터 행마다 열 개수가 다르면 도구가 해당 행을 오류로 알린다.
- 식별자·계좌번호·우편번호처럼 앞자리 0이 중요한 값은 변환 뒤에도 문자열인지 확인한다. 스프레드시트에 붙여 넣을 때는 스프레드시트가 자체적으로 숫자로 다시 바꿀 수 있다.
- 입력은 브라우저에서 처리하고 서버로 전송하지 않는다. 다만 복사한 결과를 다른 서비스에 붙여 넣을 때는 개인정보와 공유 범위를 다시 확인한다.
- 입력 한도는 100만 글자다. 큰 자료를 나눠 처리할 때는 같은 열 이름과 구분자를 유지한다.
변환 전후의 본문 길이를 비교하고 싶다면 글자 수·읽기 시간 계산기를 함께 사용할 수 있다.