JSON을 CSV로 변환

JSON 객체 배열을 CSV 형식으로 변환합니다.


JSON을 CSV로 변환한다는 것은

API에서 받은 JSON은 기계가 다루는 것을 전제로 한 형식이므로 그대로는 스프레드시트에서 열 수 없습니다. 이 도구는 JSON의 객체 배열을 읽어, 키를 머리글 행으로 하고 각 요소를 1행으로 한 CSV로 변환합니다. Excel이나 Google 스프레드시트에서 집계·정렬할 수 있는 형태가 됩니다.

전제가 두 가지 있습니다. 하나는 대상이 객체의 배열이어야 한다는 점입니다. 단일 객체는 배열로 감싼 뒤 입력해 주세요. 다른 하나는 깊은 중첩의 처리입니다. 값이 객체나 배열인 경우에는 열로 펼쳐지지 않고 JSON 문자열 그대로 셀에 들어갑니다. 미리 평탄화해 두면 다루기 쉬워집니다.

JSON→CSV 변환의 순서

  1. JSON을 붙여 넣습니다 객체의 배열을 입력란에 붙여 넣습니다. API의 응답을 그대로 복사해도 상관없습니다.
  2. 변환 결과를 확인합니다 키가 머리글 행이 되고 요소마다 1행이 늘어섭니다. 예상한 열이 나오고 있는지 확인해 주세요.
  3. CSV를 내려받습니다 문자 코드는 UTF-8입니다. Excel에서 열었을 때 글자가 깨진다면 가져오기 시 UTF-8을 지정해 주세요.

더 잘 활용하기 위한 팁

  • 변환 대상은 JSON의 객체 배열([{}, {}, ...]) 형식이어야 합니다. 단일 객체는 지원하지 않습니다.
  • REST API 응답 데이터를 Excel이나 Google 스프레드시트에서 다루고 싶을 때 편리합니다.
  • 깊게 중첩된 객체나 배열의 값은 평탄화되지 않고 JSON 문자열(예: {"a":1})로 출력됩니다.
  • 다운로드한 CSV의 문자 인코딩은 UTF-8입니다. Excel에서 깨져 보이는 경우 UTF-8(BOM 포함)로 열어보세요.

JSON→CSV 변환의 활용 상황

API의 응답을 집계하기

가져온 데이터를 CSV로 고치면 스프레드시트의 함수나 피벗 테이블로 그대로 집계할 수 있습니다.

비개발자에게 공유하기

JSON 그대로 건네도 읽지 못하는 상대에게 표 형식으로 건넬 수 있습니다. 확인이나 수정을 의뢰하기 쉬워집니다.

데이터 이행의 중간 형식으로 삼기

CSV 가져오기를 지원하는 도구로 데이터를 옮길 때의 변환에 쓸 수 있습니다. 많은 서비스가 CSV 가져오기를 지원합니다.

건수나 결측을 확인하기

표로 만들면 행 수나 빈칸이 눈으로 보입니다. 예상한 건수가 갖추어져 있는지 점검하기에 알맞습니다.

JSON·CSV의 용어

객체 배열
[{...}, {...}]의 형태로 여러 객체를 늘어놓은 구조입니다. 표의 각 행에 대응하므로 CSV로 변환할 수 있습니다.
키
객체 안에서 값을 가리키는 이름입니다. CSV에서는 머리글 행의 열 이름이 됩니다.
중첩
값 안에 다시 객체나 배열이 들어 있는 구조입니다. 표 형식에 순순히 담기지 않는 부분이 됩니다.
평탄화
중첩을 펼쳐 1계층으로 고치는 것입니다. 미리 해 두면 CSV의 열로 다룰 수 있습니다.
BOM
파일 첫머리에 붙이는 문자 코드의 표시입니다. UTF-8의 CSV를 Excel에서 올바르게 열게 하고 싶을 때 쓰입니다.

자주 묻는 질문

아니요, 이 도구는 JSON 객체 배열([{}, {}])만 지원합니다. 단일 객체가 있다면 먼저 배열로 감싸주세요(예: [{}]).

깊게 중첩된 값은 평탄화되지 않고 JSON 문자열(객체라면 {"a":1})로 출력됩니다. 해당 값을 별도의 열로 분리하려면 변환 전에 JSON 구조를 먼저 평탄화하세요.

다운로드한 CSV는 UTF-8 인코딩입니다. Excel에서는 「데이터」→「텍스트/CSV에서」로 가져오기를 실행하고 인코딩으로 UTF-8(BOM 포함)을 선택하세요.
툴군

여담 ― JSON의 탄생 비화 ― "발명"이 아닌 "발견"

JSON(JavaScript Object Notation)은 Douglas Crockford가 2001년경에 정리한 형식입니다. 그는 자신이 JSON을 발명한 것이 아니라 발견했다고 말했습니다. JavaScript에 원래 있던 객체 리터럴 표기법을 데이터 교환 포맷으로 표준화했을 뿐이기 때문입니다.

2006년경부터 Ajax(비동기 통신)의 보급과 함께 JSON이 빠르게 확산되었습니다. XML의 장황한 문법에 비해 단순한 JSON이 개발자들의 지지를 받았습니다. 초기에는 "JSON은 XML의 대안이 될 수 없다"는 비판도 있었지만, 지금은 REST API의 표준 데이터 형식으로 완전히 자리잡았습니다.

재미있는 여담으로, Crockford는 JSON 사양서의 저작권 표기에 "The Software shall be used for Good, not Evil."이라는 조항을 넣었습니다. 이로 인해 Google·IBM 등 대기업의 법무팀이 "선악의 판단은 우리가 할 수 없다"며 공식 라이선스를 요청하는 소동이 일기도 했습니다.