왜 만들었나요
기획자가 준 시트를 코드에 넣으려면 매번 손으로 배열을 만들거나 변환 스크립트를 짜야 했습니다. 표 한 장 옮기자고 그러기엔 아까워서, 붙여넣으면 바로 나오게 만들었습니다.
엑셀·스프레드시트에서 뽑은 CSV를 JSON 배열로 바꿉니다. 첫 줄이 자동으로 키가 됩니다. 숫자와 true/false는 따옴표 없는 값으로 바뀝니다.
로딩 중...
기획자가 준 시트를 코드에 넣으려면 매번 손으로 배열을 만들거나 변환 스크립트를 짜야 했습니다. 표 한 장 옮기자고 그러기엔 아까워서, 붙여넣으면 바로 나오게 만들었습니다.
Note
붙여넣은 데이터는 서버로 전송되지 않습니다. 변환이 전부 브라우저 안에서 이뤄져, 고객 명단이나 매출 자료도 기기 밖으로 나가지 않습니다.
왼쪽 입력창에 CSV를 붙여넣습니다. 첫 줄이 헤더로 인식되어 각 열의 키가 됩니다. 파일 아이콘으로 불러오거나 샘플로 시작해도 됩니다.

가운데 화살표를 누르면 변환됩니다. 입력을 멈추면 잠깐 뒤 자동으로도 변환되어, 값을 고치면서 결과가 어떻게 바뀌는지 바로 볼 수 있습니다.

오른쪽 JSON을 복사해 코드에 붙여넣거나 파일로 내려받습니다.

상품 목록 시트를 넣으면 이렇게 나옵니다.
넣은 것 나온 것
name,price,stock [
사과,1500,20 → { "name": "사과", "price": 1500, "stock": 20 },
배,3000,15 { "name": "배", "price": 3000, "stock": 15 }
]
첫 줄(name,price,stock)이 키가 되고, 나머지 줄이 각각 하나의 항목이 됩니다. 숫자로 읽히는 값은 따옴표 없이 숫자로 나옵니다.
| CSV | JSON | |
|---|---|---|
| 모양 | 표 (행과 열) | 층이 있는 구조 |
| 층 | 없음 — 모두 평평함 | 안에 또 안에 들어갈 수 있음 |
| 값의 종류 | 파일에는 표시가 없음 | 숫자·참거짓·목록 구분 |
CSV는 표라서 층을 담지 못합니다. 그래서 CSV에서 JSON으로는 쉽게 가지만, 층이 깊은 JSON을 CSV로 되돌리면 안쪽에 들어 있던 값이 한 칸에 뭉쳐 버립니다.
CSV의 첫 줄이 JSON의 항목 이름이 되고, 두 번째 줄부터가 실제 데이터가 됩니다.
CSV JSON
이름,나이 [
홍길동,30 → { "이름": "홍길동", "나이": 30 },
김철수,25 { "이름": "김철수", "나이": 25 }
]
그래서 첫 줄에 반드시 열 이름이 있어야 합니다. 데이터가 바로 시작하면 첫 번째 데이터가 이름이 되어 한 줄이 통째로 사라집니다.
표로 정리한 데이터를 코드나 API에 넣으려면 형태를 바꿔야 합니다. 대표적인 상황은 이렇습니다.
| 상황 | 이유 |
|---|---|
| 엑셀 데이터를 개발에 넘기기 | 표를 코드에서 쓰는 형태로 |
| 테스트 데이터 만들기 | 엑셀로 정리해 JSON으로 변환 |
| API에 넣을 자료 준비 | 대부분의 API가 JSON을 받습니다 |
| 설정값 옮기기 | 표로 관리하고 JSON으로 내보내기 |
CSV에는 값의 종류 정보가 없어서, 이 도구는 글자 모양을 보고 판단합니다. 1500은 숫자로, true/false는 참거짓으로 바뀝니다.
007, 010-1234-5678 등)은 숫자로 바꾸면 0이 사라지므로 글자로 그대로 둡니다CSV는 쉼표로 열을 나누기 때문에, 값 안에 쉼표가 있으면 "서울, 강남구" 처럼 큰따옴표로 감싸야 합니다. 엑셀에서 CSV로 저장하면 자동으로 처리되지만, 손으로 만든 파일이면 확인해 보세요.
윈도우 엑셀에서 만든 CSV는 EUC-KR 방식으로 저장되는 경우가 많습니다. 파일을 불러온 뒤 읽기 인코딩을 EUC-KR로 바꾸면 한글이 정상으로 보입니다.
반대로 웹 서비스에서 받은 파일은 대개 UTF-8입니다. 어느 쪽인지 모르겠다면 두 가지를 번갈아 골라 보고, 글자가 제대로 보이는 쪽으로 두면 됩니다.
애초에 깨지지 않게 하려면 엑셀에서 저장할 때 형식을 CSV UTF-8 로 고르세요.
첫 줄을 열 이름으로 읽기 때문입니다. 데이터가 바로 시작하는 파일이라면 그 첫 줄이 이름으로 쓰이고 데이터에서는 빠집니다.
붙여넣기 전에 맨 위에 열 이름 줄을 한 줄 추가해 주세요. 마땅한 이름이 없으면 열1,열2,열3처럼 임시로 적어도 됩니다.
값을 쉼표로 구분해 저장한 표 파일입니다. 엑셀·구글 시트에서 "CSV로 내보내기"를 하면 만들어지고, 메모장으로 열면 글자 그대로 보입니다.
CSV의 첫 줄입니다. 각 열이 무슨 값인지 이름을 적어 두는 줄로, 이 도구는 이 줄을 JSON의 키로 씁니다.
첫 줄의 내용을 JSON 항목 이름으로 쓰기 때문에, 제목 줄 없이 데이터가 바로 시작하면 첫 번째 데이터가 이름이 되어 그 줄이 통째로 사라집니다. 붙여넣기 전에 맨 위에 열 이름 줄을 한 줄 추가해 주세요. 마땅한 이름이 없다면 열1,열2,열3처럼 임시로 적어도 됩니다.
윈도우 엑셀은 보통 EUC-KR 방식으로 저장합니다. 파일을 불러온 뒤 '읽기 인코딩'을 EUC-KR로 바꾸면 한글이 정상적으로 표시됩니다. 반대로 웹 서비스에서 받은 파일은 대개 UTF-8이니, 어느 쪽인지 모르겠다면 두 가지를 번갈아 골라 보고 글자가 제대로 보이는 쪽으로 두면 됩니다. 애초에 깨지지 않게 하려면 엑셀에서 저장할 때 형식을 'CSV UTF-8'로 고르세요.
입력 용량은 5MB까지입니다. 브라우저 탭이 멈추는 것을 막기 위한 제한이며, 보통 수만 행까지는 문제없이 변환됩니다. 그보다 큰 파일은 엑셀에서 나눠 저장한 뒤 하나씩 변환해 주세요. 변환은 전부 브라우저 안에서 이뤄져 데이터가 서버로 전송되지 않으므로, 고객 명단처럼 민감한 자료도 안심하고 다룰 수 있습니다.
CSV 파일에는 값의 종류 정보가 담기지 않기 때문입니다. 1500이라는 값이 숫자인지 글자인지 파일만 봐서는 알 수 없어서 모두 글자로 변환됩니다. 코드에서 쓸 때 Number()로 바꾸면 되고, 처음부터 종류를 지켜야 한다면 원본 데이터를 JSON으로 직접 받는 편이 낫습니다.
CSV는 쉼표를 기준으로 칸을 나누는 형식이라, 값 자체에 쉼표가 포함되면 그 지점에서 칸이 하나 더 생겨 버립니다. 주소나 천 단위 구분이 들어간 금액에서 특히 자주 겪습니다. 해결하려면 그 값을 큰따옴표로 감싸면 되는데("서울, 강남구"), 엑셀에서 CSV로 저장하면 자동으로 처리되므로 손으로 만든 파일만 확인하시면 됩니다.
마지막 업데이트: