CSV ⇄ JSON
어느 형식이든 붙여 넣으면 입력하는 대로 반대 형식이 나타납니다.
사용 방법
- CSV(또는 TSV/세미콜론 구분 텍스트)나 JSON 배열을 상자에 붙여 넣으세요. 버튼 없이 입력하는 즉시 결과가 그려집니다. 방향은 첫 글자로 감지해 결과 위에 표시하므로 확인할 수 있습니다.
- 방향을 잘못 추측했다면 CSV → JSON 또는 JSON → CSV를 고르세요. 모든 내용이 한 열에 들어가면 구분자를 「자동」에서 해당 문자로 바꾸세요. 파일이 데이터로 시작하면 「첫 행이 헤더」를 끄세요. 그러면 객체 대신 배열의 배열이 나옵니다.
- 결과를 복사하거나 다운로드하세요. 둘 다 화면에 보이는 텍스트를 그대로 쓰며 파일 이름은 data.json 또는 data.csv입니다. 예시 불러오기는 활성 방향에 맞는 예시를 채웁니다.
예시
입력 (CSV)
order_id,customer,note,zip,amount,shipped 1001,"Popescu, Ana",asked for a refund,00501,89.90,true 1002,Ben Carter,,10001,42.00,false
출력 (JSON)
[ { "order_id": 1001, "customer": "Popescu, Ana", "note": "asked for a refund", "zip": "00501", "amount": 89.9, "shipped": true }, { "order_id": 1002, "customer": "Ben Carter", "note": "", "zip": 10001, "amount": 42, "shipped": false } ]
출력에서 네 가지를 확인하세요. 「Popescu, Ana」 안의 쉼표는 행을 나누지 않고 값 안에 남았습니다. 우편번호 00501은 앞자리 0을 유지했습니다(그렇지 않으면 501이 됨). 10001은 숫자가 되어 우편번호 열의 타입이 섞였으므로, 모든 값을 문자열로 유지하려면 「숫자·불리언 감지」를 끄세요. 89.90은 89.9가 되었는데, JSON 숫자는 끝의 0을 담을 수 없기 때문입니다.
규칙, 제한 및 알려진 문제
- 파일 업로드, 끌어다 놓기, URL 가져오기는 없습니다. 텍스트를 붙여 넣으세요. 드롭 영역은 결과에 필요한 높이를 잡아먹고, 파일을 제대로 읽으려면 비UTF-8 인코딩(GB18030, Big5, Windows-1256)을 다뤄야 합니다. CSV 뷰어가 이미 그 기능을 하므로 그곳에서 파일을 열고 텍스트를 복사하세요.
- 입력은 100만 자로 제한됩니다. 20만 자를 넘으면 입력을 멈출 때까지 기다렸다가 결과를 내고 그 사실을 알려 줍니다. 한도를 넘으면 명시적 오류가 나오며 입력을 조용히 자르지 않습니다.
- 타입 감지는 셀 단위이고 보수적입니다. true / false / null(소문자만)과 엄격한 JSON 숫자만 변환합니다. 앞자리 0이 있는 정수(00501)와 16자리 이상 숫자(긴 ID)는 항상 문자열로 남고, 빈 셀은 null이 아니라 ""로 남습니다.
- JSON 숫자는 끝의 0을 유지하지 못하므로 89.90은 89.9, 42.00은 42가 됩니다. 모든 값을 입력한 그대로 유지하려면 「숫자·불리언 감지」를 끄세요.
- 열 수는 가장 넓은 행을 기준으로 하므로 어떤 필드도 버려지지 않습니다. 짧은 행은 빈 문자열로 채우고 남는 필드에는 자동 이름을 붙입니다. 첫 행과 맞지 않는 행은 번호로 나열됩니다.
- 중복 열 이름은 서로 덮어쓰지 않고 _2, _3 …을 붙여 바꿉니다. 덮어쓰면 열 하나가 조용히 사라지기 때문입니다. 없거나 빈 헤더 셀은 column_N이 됩니다. 이 이름은 기계 판독용이며 모든 인터페이스 언어에서 같습니다.
- JSON → CSV는 객체 배열(주된 경우), 배열의 배열(위치 기준 열), 단일 객체, 일반 값 배열(「value」 열 하나)을 받습니다. 그 외의 것(최상위 단일 값, 객체와 다른 값이 섞인 배열)은 줄과 열을 알려 주며 거부하고 절대 추측하지 않습니다.
- 중첩 객체는 기본적으로 점 표기 키(address.city)로 펼칩니다. 배열은 절대 펼치지 않고 셀 안에 압축 JSON으로 기록합니다. 펼치기를 끄면 중첩 객체도 JSON으로 남습니다. null은 빈 셀이 됩니다.
- JSON은 엄격하게 해석합니다. 주석, 끝 쉼표, 작은따옴표, 이스케이프되지 않은 제어 문자를 허용하지 않으며 중첩은 64단계까지입니다. 한 줄에 객체 하나(JSON Lines)는 받지 않으니 먼저 배열로 감싸세요.
- CSV는 관대한 쪽입니다. 닫히지 않은 따옴표는 텍스트 끝까지 합치고 해당 행을 알려 주며, 빈 줄은 건너뛰고 세고, 필드 수가 틀린 행은 나열합니다. 하드 오류는 JSON 쪽에서만 납니다.
- 출력 CSV는 CRLF 줄바꿈과 BOM 없이 작성되며 복사하는 내용과 같습니다. 비라틴 CSV를 Excel에서 두 번 클릭해 열었을 때 글자가 깨지면 데이터 → 텍스트/CSV에서 가져오기로 UTF-8을 고르세요.
- 범위 밖: .xlsx, 압축 파일, 여러 파일, JSON Lines, YAML/XML/SQL/Excel 내보내기, 정렬, 필터링, 열 선택, 중복 제거. 그런 기능은 CSV 뷰어와 설정 변환기가 다룹니다. 업로드, 저장, URL 기록은 없습니다.
관련 도구
데이터를 다른 형식으로 바꾼 뒤 흔히 이어서 찾는 도구입니다.