본문으로 건너뛰기

JSON CSV 변환

JSON ⇄ CSV

중첩 JSON을 점 표기 열 이름으로 펼치거나, 표에서 객체를 다시 만듭니다.

JSON 객체 배열을 스프레드시트 표로 바꿉니다. 레코드 하나가 한 행, 키 하나가 한 열입니다. 진짜 문제는 표에 자리가 없는 것들 — 중첩된 객체, 배열, 그리고 키가 서로 다른 레코드 — 을 어떻게 할지이고, 그건 페이지 위쪽에서 직접 고르게 되어 있습니다.

🔒 브라우저 안에서만 처리jsoncsvconverttable
중첩된 객체

user.address.city가 각각 하나의 열이 됩니다.

배열 값

tags.0, tags.1 — 가장 넓지만 잃는 게 없습니다.

들쭉날쭉한 행

없는 값은 빈 칸이 됩니다.

JSON 입력

.json 파일 놓기

이 탭에서 읽습니다. 올라가지 않습니다.

CSV 출력

구분자

내려받는 파일에는 UTF-8 BOM이 붙습니다. 윈도우 엑셀이 한글을 CP949로 읽지 않게 하려는 것입니다. 복사 버튼은 BOM 없이 줍니다.

사용 방법

  1. 객체 배열을 붙여넣습니다

    표가 원하는 모양입니다. 객체 하나면 한 행이 되고, 배열을 감싼 객체 — API가 흔히 주는 `{ "data": [...] }` 형태 — 는 알아서 벗겨 내고 그 사실을 아래에 알려 줍니다.

  2. 중첩을 어떻게 펼칠지 정합니다

    점 경로를 고르면 `user.address.city`가 각각 열이 됩니다. 시트를 필터링하거나 피벗할 거라면 이쪽입니다. 한 단계만을 고르면 `user.address`가 JSON을 담은 칸 하나로 남아서 더 좁고 되돌리기도 쉽습니다.

  3. 배열을 어떻게 다룰지 정합니다

    원소마다 열(`tags.0`, `tags.1`)은 잃는 게 없지만 문서에서 가장 긴 배열만큼 표가 넓어집니다. 이어 붙이기는 한 칸에 `a; b; c`로 넣어 읽기 좋습니다. JSON 그대로는 대괄호를 남겨서 나중에 다시 파싱할 수 있게 합니다.

  4. 미리보기에서 열 타입을 봅니다

    열 머리글마다 값들이 실제로 가졌던 타입이 붙고, 빠진 레코드가 있으면 있음/전체 개수가 함께 나옵니다. `mixed`로 나온 열은 대개 나중에 문제가 되는 자리입니다.

  5. CSV로 내려받거나 TSV로 복사합니다

    CSV 내려받기에는 앞에 UTF-8 BOM이 붙어서 윈도우 엑셀이 한글을 제대로 엽니다. 파일을 여는 대신 시트에 붙여넣을 거라면 TSV로 바꾸고 복사 버튼을 쓰세요.

자주 묻는 질문

엑셀에서 한글이 왜 깨지나요?

BOM 없이 저장했기 때문입니다. 윈도우 엑셀은 BOM이 없는 UTF-8 CSV를 여전히 CP949로 추측합니다. 여기 내려받기 버튼은 BOM을 붙이고, 복사 버튼은 일부러 붙이지 않습니다. 텍스트 편집기에 붙여넣으면 BOM이 이상한 글자로 보이기 때문입니다.

CSV에서 JSON으로 되돌릴 수 있나요?

이 페이지에서는 한 방향으로만 갑니다. 그리고 왕복 자체가 원래 손실이 있습니다. 점이 찍힌 열 이름은 다시 객체로 만들 수 있지만, 이어 붙인 배열은 세미콜론이 들어 있던 문자열과 구분할 방법이 없습니다.

키가 서로 다른 레코드는 어떻게 되나요?

"들쭉날쭉한 행" 설정이 그것입니다. 모든 키는 전부 남기고 빈 칸을 두고, 공통 키만은 모든 레코드에 없는 열을 버리고, 첫 행의 키는 첫 레코드를 스키마로 삼고 나머지는 조용히 무시합니다. 기본값으로는 첫 번째가 안전하고, 들쭉날쭉한 파일을 거부하는 가져오기 도구가 있다면 두 번째를 씁니다.

큰 숫자는 안전한가요?

파싱은 브라우저가 하므로 2^53을 넘는 숫자는 표를 만들기 전에 이미 반올림됩니다. 스프레드시트는 열 때 한 번 더 반올림합니다. 긴 id는 JSON에서 문자열로 두는 게 맞고, 그래도 엑셀이 다시 서식을 바꿀 수 있어서 시트에서는 보통 앞에 작은따옴표를 붙여 막습니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.