도구로 바로 가기
ViewCSV
파일을 업로드하지 않습니다

CSV를 JSON으로 변환

orders.csv· 예시 데이터15행 · 8열
값 유형
감지는 열 단위로 하며 그 열의 모든 값이 맞을 때만 적용합니다. 따라서 앞자리가 0인 ID나 9,007,199,254,740,991보다 큰 정수는 텍스트로 남습니다.
user.name과 user.email 열은 ‘name’과 ‘email’을 가진 하나의 ‘user’ 객체가 됩니다.
[
  {
    "order_id": "001041",
    "customer": "주원 이",
    "city": "수원",
    "product": "USB-C cable",
    "quantity": "4",
    "unit_price": "242.94",
    "order_date": "2026-01-11",
    "status": "refunded"
  },
  {
    "order_id": "001042",
    "customer": "지아 최",
    "city": "인천",
    "product": "Coffee beans 1kg",
    "quantity": "5",
    "unit_price": "137.62",
    "order_date": "2026-02-06",
    "status": "pending"
  },
  {
    "order_id": "001043",
    "customer": "도윤 정",
    "city": "서울",
    "product": "USB-C cable",
    "quantity": "4",
    "unit_price": "230.94",
    "order_date": "2026-03-13",
    "status": "pending"
  },
  {
    "order_id": "001044",
    "customer": "하은 최",
    "city": "울산",
    "product": "Chair, ergonomic",
    "quantity": "8",
    "unit_price": "173.96",
    "order_date": "2026-04-25",
    "status": "pending"
  },
  {
    "order_id": "001045",
    "customer": "민준 이",
    "city": "부산",
    "product": "Chair, ergonomic",
    "quantity": "1",
    "unit_price": "",
    "order_date": "2026-05-25",
    "status": "pending"
  },
  {
    "order_id": "001046",
    "customer": "하윤 강",
    "city": "울산",
    "product": "Coffee beans 1kg",
    "quantity": "2",
    "unit_price": "184.56",
    "order_date": "2026-06-26",
    "status": "shipped"
  },
  {
    "order_id": "001047",
    "customer": " 지아 김 ",
    "city": "광주",
    "product": "Coffee beans 1kg",
    "quantity": "2",
    "unit_price": "216.67",
    "order_date": "2026-07-26",
    "status": "paid"
  },
  {
    "order_id": "001048",
    "customer": "하은 김",
    "city": "대구",
    "product": "Chair, ergonomic",
    "quantity": "9",
    "unit_price": "53.02",
    "order_date": "2026-08-27",
    "status": "pending"
  },
  {
    "order_id": "001049",
    "customer": "예준 오",
    "city": "인천",
    "product": "Notebook A5",
    "quantity": "3",
    "unit_price": "99.60",
    "order_date": "2026-09-20",
    "status": "paid"
  },
  {
    "order_id": "001050",
    "customer": "지아 윤",
    "city": "부산",
    "product": "Monitor 27\"",
    "quantity": "4",
    "unit_price": "161.71",
    "order_date": "2026-01-24",
    "status": "pending"
  },
  {
    "order_id": "001051",
    "customer": "하은 정",
    "city": "대구",
    "product": "Notebook A5",
    "quantity": "9",
    "unit_price": "142.69",
    "order_date": "2026-02-20",
    "status": "paid"
  },
  {
    "order_id": "001052",
    "customer": "지우 한",
    "city": "울산",
    "product": "USB-C cable",
    "quantity": "1",
    "unit_price": "231.30",
    "order_date": "2026-03-12",
    "status": "refunded"
  },
  {
    "order_id": "001053",
    "customer": "도윤 박",
    "city": "수원",
    "product": "Notebook A5",
    "quantity": "8",
    "unit_price": "244.37",
    "order_date": "2026-04-20",
    "status": "paid"
  },
  {
    "order_id": "001054",
    "customer": "민준 김",
    "city": "광주",
    "product": "Chair, ergonomic",
    "quantity": "7",
    "unit_price": "62.98",
    "order_date": "2026-05-05",
    "status": "refunded"
  },
  {
    "order_id": "001043",
    "customer": "도윤 정",
    "city": "서울",
    "product": "USB-C cable",
    "quantity": "4",
    "unit_price": "230.94",
    "order_date": "2026-03-13",
    "status": "pending"
  }
]

15행 · 파일 1개

CSV 파일을 열거나 붙여넣으면 옵션을 바꾸는 대로 옆에 JSON이 나타납니다. 기본적으로 각 행은 열 이름을 키로 하는 객체가 되며, 받는 코드가 다른 구조를 기대한다면 배열의 배열, 열별 배열을 담은 객체, JSON Lines 중에서 고르세요. 모든 값은 기본적으로 문자열로 남으므로 00731이나 20자리 ID도 원래 모습 그대로 나옵니다. 어떤 열을 JSON 숫자와 true/false로 바꿔야 할 때만 숫자 감지를 켜세요. 설정 파일이 필요하다면 CSV를 YAML로에서 같은 행을 YAML로 쓸 수 있습니다. 파일은 업로드되지 않고 브라우저 안에서 변환됩니다.

CSV를 JSON으로 변환하는 방법

  1. .csv, .tsv, .txt 파일을 열거나 도구 위에 끌어다 놓거나 행을 붙여넣으세요. 구분 기호와 UTF-8·UTF-16 BOM은 자동으로 감지됩니다. 다른 구분 기호나 EUC-KR(CP949), Windows-1252, Shift_JIS 같은 레거시 인코딩은 가져오기 설정에서 고르세요.
  2. JSON 구조를 고르세요. 미리 보기에는 다운로드 파일에 들어갈 출력의 처음 200행이 그대로 표시됩니다.
  3. 값 유형, 빈 셀, 중첩, 들여쓰기를 정한 다음 JSON 다운로드나 복사를 누르세요.

같은 설정으로 여러 파일을 변환하려면 일괄 변환: 여러 파일 변환을 고르고 파일을 한꺼번에 선택하세요. 파일을 차례로 변환하고 결과를 ZIP 하나로 다운로드합니다.

JSON 출력 옵션: 객체, 배열, JSON Lines

객체 배열행마다 머리글을 키로 하는 객체 하나를 만듭니다: [{"sku": "00731", …}]. 대부분의 API와 JavaScript 코드가 기대하는 구조입니다.
배열의 배열머리글 행을 먼저 쓰고 각 행을 목록으로 씁니다. 출력이 가장 작고, 열 순서가 명시적으로 유지됩니다.
열별 배열을 담은 객체{"sku": ["00731", "00732"], …} 형태로, 차트 라이브러리나 데이터프레임 도구에 편리합니다.
JSON Lines감싸는 배열 없이 줄마다 JSON 객체 하나를 씁니다(JSON Lines). 로그 파이프라인, BigQuery 적재, 줄 단위 처리에 알맞습니다.
모든 값을 텍스트로 유지모든 셀을 파일에 적힌 그대로 JSON 문자열로 씁니다. 기본값입니다.
숫자와 true/false 감지비어 있지 않은 모든 값이 변환해도 손상되지 않는 일반 숫자일 때만 그 열을 JSON 숫자로 바꿉니다. 앞자리 0이 없고, 유효 숫자가 15자리 이하이며, 소수점 쉼표가 없어야 합니다. true/false 열은 불리언이 됩니다. 날짜는 문자열로 남습니다.
빈 셀"", null 중 하나로 쓰거나, 그 객체에서 키를 생략합니다.
점으로 구분된 열 이름을 중첩user.name과 user.email은 {"user": {"name": …, "email": …}}가 됩니다. 한 이름이 값이면서 상위 이름이기도 하면(user와 user.name) 해당 열은 중첩하지 않고 그대로 두며 그 사실을 알려 줍니다.

JSON 안의 머리글, 따옴표 값, ID

  • 따옴표 안의 쉼표, 따옴표(""), 줄 바꿈은 RFC 4180에 따라 읽고, 일반적인 JSON 문자열 이스케이프(\n, \")로 씁니다.
  • 머리글 이름은 공백과 한글 같은 비라틴 문자까지 적힌 그대로 씁니다. 빈 머리글은 Column 3, 중복된 머리글은 name (2)가 되므로 덮어쓰이는 값이 없습니다.
  • __proto__나 constructor 같은 머리글도 일반 키로 씁니다.
  • 머리글보다 값이 많은 행에는 Column 4, Column 5… 같은 키가 추가되고, 값이 적은 행에는 빈 값이 들어갑니다. 빠지는 것은 없습니다.
  • 유형 감지를 켜도 0012가 12가 되거나 19자리 주문번호가 반올림된 부동소수점이 되는 일은 없습니다. 그런 열은 텍스트로 남습니다.

CSV를 JSON으로 바꿀 때 흔한 문제

  • 모든 값이 키 하나에 들어갑니다. 구분 기호를 잘못 추측했습니다. 가져오기 설정에서 쉼표, 세미콜론, 탭, 세로 막대 중 하나를 고르고 파일을 다시 여세요.
  • 한글이 깨지거나 악센트가 é처럼 보입니다. UTF-8이 아닌 파일입니다. 가져오기 설정에서 원래 인코딩을 고르세요. 한국어 파일이라면 대개 EUC-KR(CP949), 예전 서유럽 Excel 내보내기라면 Windows-1252입니다.
  • 숫자 열이 텍스트로 남았습니다. 일반 숫자가 아닌 값이 하나 이상 있습니다. 예를 들면 1,5, 12 kg, 앞자리 0이 있는 값입니다. CSV 뷰어에서 그 열을 검색해 찾으세요.
  • 따옴표 오류에 특정 레코드가 표시됩니다. 그 레코드에서 열린 따옴표가 닫히지 않았습니다. CSV 편집기에서 고치거나 원본 시스템의 내보내기를 확인하세요.

한도와 개인정보 보호

25 MB, 10만 행 또는 200만 셀까지의 파일은 실시간 미리 보기와 함께 열립니다. 더 큰 파일은 스트리밍 방식으로 변환합니다. 파일을 조각 단위로 두 번 읽는데(한 번은 열과 유형 파악, 한 번은 쓰기), 미리 보기 대신 안내가 표시되고 다운로드에는 모든 행이 들어갑니다. 출력 파일 하나는 최대 4 GB입니다.

변환은 이 탭의 백그라운드 워커에서 실행되므로 페이지가 멈추지 않고, 취소로 중단할 수 있습니다. CSV는 서버로 보내지 않습니다.

예시: 상품 목록을 JSON 객체로

앞자리 0이 있는 SKU와 따옴표 안의 쉼표가 있는 상품 목록을 기본 설정(모두 텍스트, 객체 배열, 2칸 들여쓰기)으로 변환한 결과입니다. 숫자와 true/false 감지를 켜면 price는 34.9, in_stock은 true가 되고, sku는 "00731"로 남습니다.

CSV
sku,name,price,in_stock
00731,"Desk lamp, brass",34.90,true
00732,Cable tidy,4.50,false
JSON 결과
[
  {
    "sku": "00731",
    "name": "Desk lamp, brass",
    "price": "34.90",
    "in_stock": "true"
  },
  {
    "sku": "00732",
    "name": "Cable tidy",
    "price": "4.50",
    "in_stock": "false"
  }
]

자주 묻는 질문

기본 설정에서 숫자에 따옴표가 붙는 이유는 무엇인가요?

CSV에는 유형이 없기 때문입니다. 00731, 1.50, 2024-03-01은 모두 그냥 텍스트입니다. 문자열로 두어야 JSON이 파일 내용을 정확히 그대로 담습니다. 어떤 열이 수량이라는 것을 알고 있을 때 숫자 감지를 고르세요.

여기서 JSON을 CSV로 다시 바꿀 수 있나요?

아직은 안 됩니다. 이 페이지는 CSV와 TSV를 JSON으로만 변환합니다.

JSON Lines와 NDJSON은 같은 건가요?

실제로는 같습니다. 둘 다 줄 바꿈 문자로 구분해 줄마다 완전한 JSON 값 하나를 쓰는 형식입니다.

표준 및 참고 자료