/ 데이터 / csv
광고 제거멤버
테마: 시스템대비: 표준

CSV·JSON 변환기

CSV를 JSON 배열로, JSON을 CSV로 변환합니다. 구분 기호를 자동으로 감지하고 세미콜론과 소수점 쉼표를 쓰는 Excel 파일도 읽습니다.

코드 예제

내 프로젝트에 그대로 복사해서 쓰세요. 모든 예제는 해당 언어의 표준 라이브러리만 사용하므로 설치할 것이 없습니다.

최대 3개 언어에 별표를 하면 모든 도구 페이지에서 맨 앞에 표시됩니다.

JavaScript을(를) 즐겨찾기에 추가
const text = 'name,city\nAnn,Utrecht\nBob,"Den Haag, NL"\n'

const trimmed = text.trimEnd()
const records = [[]]

for (const match of trimmed.matchAll(/("(?:[^"]|"")*"|[^,\n]*)(,|\n|$)/gu)) {
  if (match.index === trimmed.length) break

  const [, field, end] = match
  records.at(-1).push(field.startsWith('"') ? field.slice(1, -1).replaceAll('""', '"') : field)
  if (end === '\n') records.push([])
}

const [header, ...rows] = records
const objects = rows.map((row) => Object.fromEntries(header.map((name, i) => [name, row[i]])))

console.log(JSON.stringify(objects))

기능

CSV를 JSON 배열로, JSON을 CSV로 변환합니다. CSV는 RFC 4180에 따라 읽으며 따옴표로 감싼 필드, 겹따옴표, 필드 안의 줄바꿈을 처리합니다.

사용 방법

  1. CSV나 JSON을 붙여넣거나 파일을 끌어다 놓으세요.
  2. CSV → JSON 또는 JSON → CSV를 고르세요. 구분 기호와 소수점은 자동 감지로 두거나 직접 지정할 수 있습니다.
  3. 결과를 복사하거나 내려받거나, 출력을 입력으로 사용으로 다음 입력으로 쓰세요.

예시

CSV name;price / cheese;12,50은 [{"name": "cheese", "price": 12.5}]이 되고, 헤더 줄을 끄면 [["name", "price"], ["cheese", 12.5]]가 됩니다.

알아두기

  • 헤더 줄을 켜면 각 줄이 열 이름을 키로 하는 객체가 됩니다. 필드 수가 다른 줄은 줄 번호와 함께 알려 줍니다.
  • 구분 기호는 처음 몇 줄에서 감지합니다(쉼표, 세미콜론, 탭, 파이프). 세미콜론과 소수점 쉼표를 쓰는 Excel은 자동 감지에서 12.5로 읽힙니다.
  • 다시 읽었을 때 똑같은 값만 숫자가 되므로 007, 1.50, 아주 긴 숫자는 텍스트로 남습니다. 숫자 읽기를 끄면 모두 텍스트로 유지됩니다.
  • JSON → CSV에는 객체 배열(열은 키의 합집합) 또는 배열의 배열이 필요합니다. 중첩된 값은 JSON 텍스트로 씁니다.

CSV 파일은 어떻게 읽나요?

RFC 4180을 따릅니다. 필드는 구분 기호로 나누고, 큰따옴표로 감싼 필드에는 구분 기호와 줄바꿈이 들어갈 수 있으며, 안의 따옴표는 두 번 씁니다. 구분 기호는 처음 몇 줄에서 감지합니다.

자주 묻는 질문

숫자가 텍스트가 되거나 그 반대가 되는 이유는?

다시 읽었을 때 똑같은 값만 숫자가 됩니다. 007, 1.50, 아주 긴 숫자는 텍스트로 남습니다. “숫자와 true/false 읽기”를 끄면 모두 텍스트로 유지됩니다.

세미콜론 Excel 형식이란?

지역 설정에 따라 Excel은 필드를 세미콜론으로 나누고 소수점에 쉼표를 씁니다. 구분 기호나 소수점이 “자동 감지”이면 12,50을 12.5로 읽고, 소수점 쉼표를 고르면 JSON → CSV는 세미콜론 파일로 씁니다.

데이터가 어딘가로 전송되나요?

아니요. 변환은 브라우저에서 이루어지며 붙여넣은 내용은 서버로 전송되지 않습니다.

이 도구의 변경 내역

키보드 단축키

닫기

어디서나

도구와 작업 검색
Ctrl K
이 도움말 표시
?
테마 전환
Ctrl Shift L
선택한 도구 고정(검색에서)
Ctrl P

도구에서

출력을 첫 번째 추천으로 보내기
Ctrl ↵
파일을 입력으로 열기
Ctrl O
출력 복사
Ctrl Shift C
검색 닫기esc
도구Base64 인코더 및 디코더텍스트를 Base64로 인코딩하거나 Base64를 텍스트로 디코딩합니다. 표준 및 URL 안전 알파벳을 지원합니다.인코딩JSON 포맷터 및 검증기JSON을 포맷, 압축, 검증하며 오류의 정확한 줄과 열을 알려 줍니다.포맷정규식 테스터실시간 하이라이트, 캡처 그룹, 쉬운 말 설명과 함께 JavaScript 정규식을 테스트합니다.텍스트UUID·ULID 생성기UUID v4, UUID v7, ULID를 한꺼번에 생성하거나, ID를 붙여 넣어 버전, 변형, 타임스탬프를 확인하세요.생성기Unix 타임스탬프 변환기Unix 타임스탬프와 날짜를 서로 변환합니다. 모든 시간대를 지원하며 ISO 8601, RFC 2822, 상대 시간도 보여 줍니다.날짜 및 시간해시 및 HMAC 생성기텍스트나 파일의 MD5, SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3, CRC-32 해시를 계산하고 HMAC도 선택할 수 있습니다.보안비밀번호 생성기 및 강도 검사기무작위 비밀번호, 암호 문구, PIN을 생성하거나 비밀번호가 얼마나 강한지 확인하세요.보안JWT 디코더 및 검증기JSON Web Token을 디코딩하고 만료와 클레임을 확인하며, 비밀 키나 공개 키로 서명을 검증하세요.보안CIDR 및 IP 서브넷 계산기IPv4·IPv6 네트워크의 범위, 마스크, 크기를 계산하고 서브넷으로 나누며, 무엇이 무엇을 포함하거나 겹치는지 확인하세요.네트워크Cron 표현식 해설기cron 표현식을 쉬운 말로 읽고, 어느 시간대에서든 다음 실행 시각을 확인하며, 표준 형태로 정리하세요.날짜 및 시간줄 정렬텍스트 줄을 A에서 Z, Z에서 A, 자연 순서(file2가 file10보다 앞), 코드 포인트, 숫자 또는 길이 기준으로 정렬합니다.텍스트중복 줄 제거목록에서 중복된 줄을 제거합니다. 첫 번째 또는 마지막 사본을 남기거나, 대소문자나 공백을 무시하거나, 반복되는 모든 줄을 없앨 수 있습니다.텍스트목록과 텍스트 비교두 목록을 줄 단위로 비교합니다. 둘 다에 있거나, 하나에만 있거나, 어느 쪽에든 있는 줄을 찾고, 표시된 줄 차이를 나란히 볼 수 있습니다.텍스트대소문자 변환과 슬러그텍스트를 camelCase, snake_case, kebab-case, Title Case 등으로 변환하거나 제목을 악센트 처리가 된 URL 슬러그로 바꿉니다.텍스트URL 인코딩·디코딩·분석URL용으로 텍스트를 퍼센트 인코딩·디코딩하거나, URL을 스킴·호스트·경로·쿼리로 나누고 쿼리를 표로 편집합니다.인코딩검증기: IBAN·BSN·VATIBAN, 네덜란드 BSN, 신용카드 번호, EU VAT 번호, 이메일 주소, URL, ISBN을 검증하고 실패하면 이유를 알려 줍니다. 한 줄에 값 하나.검증HTML 엔티티 인코딩·디코딩텍스트를 이름·10진·16진 엔티티로 HTML용으로 이스케이프하거나 &, é 같은 엔티티를 다시 문자로 바꿉니다.인코딩문자열 이스케이프와 언이스케이프JSON·JavaScript 문자열, SQL 문자열, CSV 필드, 정규식 또는 셸 단어에 맞게 텍스트를 이스케이프하거나 이스케이프를 되돌립니다.인코딩EAN·UPC·GTIN 체크 디지트EAN-8, EAN-13, UPC-A, GTIN-14의 체크 디지트를 검증하고 빠진 자리를 계산하며, GS1 접두사로 국가를 읽고 ISBN-10과 EAN-13을 서로 변환합니다. 한 줄에 코드 하나.검증테스트 데이터 생성기테스트용 IBAN, BSN, EAN 바코드, EU 부가세 번호를 한꺼번에 생성합니다. 검증은 통과하지만 누구의 것도 아닙니다.생성기SQL 포매터·압축기SQL을 절마다 줄을 나눠 정리하거나 한 줄로 압축합니다. MySQL, PostgreSQL, SQLite, SQL Server, BigQuery를 지원합니다.포맷진법 변환기2진수·8진수·10진수·16진수와 2~36의 모든 진법 사이에서 숫자를 변환합니다. 큰 수, 2의 보수, 비트 보기 지원.인코딩YAML·TOML·JSON 변환기JSON, YAML, TOML을 서로 변환하거나 문서를 검증하고 정리합니다. 모든 오류에 줄과 열을 표시합니다.포맷CSV·JSON 변환기CSV를 JSON 배열로, JSON을 CSV로 변환합니다. 구분 기호를 자동으로 감지하고 세미콜론과 소수점 쉼표를 쓰는 Excel 파일도 읽습니다.데이터Glob 및 .gitignore 테스터경로 목록에 glob 패턴과 .gitignore 규칙을 시험해 어떤 경로가 어떤 규칙으로 일치하는지 확인합니다.텍스트색상 변환기색상을 HEX, RGB, HSL, HWB, OKLCH로 변환하고, 배경과의 WCAG 대비를 확인하고, Material 3 톤 팔레트도 만들 수 있습니다.포맷chmod 계산기Unix 파일 권한을 8진수(755), 문자(rwxr-xr-x), ls -l, chmod 절 사이에서 변환합니다. 체크박스 격자와 setuid, setgid, sticky 비트를 지원합니다.보안User-Agent 분석기User-Agent 문자열에서 브라우저, 엔진, OS, 기기 종류와 봇 여부를 읽어 줍니다. 비워 두면 내 브라우저를 읽습니다.네트워크cURL을 코드로 변환cURL 명령을 붙여 넣으면 같은 요청을 fetch, Axios, Python requests, Go, PHP 코드로 보여 줍니다. 아무것도 실행하거나 전송하지 않습니다.네트워크마크다운 미리보기마크다운을 쓰면 입력하는 대로 렌더링해 보여 주고 HTML도 복사할 수 있습니다. 원시 HTML은 텍스트로 표시되고 링크는 검사되므로 미리보기에서 아무것도 실행되지 않습니다.포맷바코드·QR 코드 생성기QR 코드, EAN-13, UPC-A, Code 128, ITF-14, Data Matrix를 만들어 SVG나 PNG로 저장하거나, 이미지에서 코드를 읽습니다.생성기페이지변경 내역릴리스별 변경 사항페이지소개codeknife.dev가 무엇이며 누가 만드는지페이지아이디어개선안을 제안하고 다른 방문자의 아이디어에 투표하세요.페이지개인정보브라우저를 떠나는 것과 저장되는 것페이지접근성적합성, 알려진 제한 사항, 문제 신고 방법페이지멤버십광고 제거와 한도 상향페이지동작