mygems

JSON을 CSV로 변환하기

트리 구조를 어디서나 열 수 있는 표로 펼칩니다.

  • 중첩 객체 펼치기
  • 배열 유지 또는 행으로 분리
  • 레코드 배열 자동 탐색
  • 업로드 없음

1.JSON 열기

JSON 또는 JSON Lines입니다. 여기로 끌어다 놓거나 파일을 선택하세요.

또는 JSON을 붙여넣기

만든 이유

JSON은 트리이고 CSV는 직사각형이라서 변환기는 모두 중첩을 어떻게 처리할지 선택해야 하고, 대부분은 그 선택을 말없이 합니다. 이 도구는 선택을 눈에 보이게 합니다. 중첩 객체는 address.city 같은 점으로 이어진 열이 되고, 배열은 행으로 펼칠 하나를 고르지 않는 한 한 셀에 통째로 남습니다. 레코드가 파일 최상위가 아니라 API 응답 안쪽에 있어도 찾아 줍니다.

기능

  • JSON 배열, 단일 객체, 한 줄에 레코드 하나인 JSON Lines를 읽습니다.
  • API 응답 안의 `data`나 `results` 같은 배열을 찾아, 어느 것이 레코드인지 고를 수 있게 합니다.
  • 중첩 객체를 필드가 처음 나온 순서대로 점으로 이어진 열 이름으로 펼칩니다.
  • 배열은 JSON 텍스트로 한 셀에 두거나, 배열 하나의 항목마다 별도의 행으로 나누고 상위 필드를 반복합니다.
  • 파일 또는 붙여넣은 JSON을 받아, 다운로드 전에 표를 미리 볼 수 있습니다.

레코드마다 필드가 다를 때

실제 JSON은 필드가 모두 같은 경우가 드뭅니다. 어느 레코드에든 나타나는 필드는 모두 열이 되고, 그 필드가 없는 레코드는 해당 칸이 빈 셀이 됩니다. 첫 레코드에 없다는 이유로 버려지는 것은 없습니다.

자주 묻는 질문

중첩 객체는 어떻게 처리하나요?
중첩된 필드는 각각 경로로 이름 붙인 열이 됩니다. `{"address": {"city": "Lyon"}}`은 `address.city`라는 열이 됩니다. 중첩이 아무리 깊어도 한 단계의 열로 정리됩니다.
배열은 어떻게 되나요?
기본적으로 배열은 JSON 텍스트로 한 셀에 남으므로 행 수는 레코드 수와 같습니다. 나눌 배열을 고르면 그 배열의 항목마다 행이 하나씩 생기고, 나머지 레코드 내용은 옆에 반복됩니다.
JSON이 배열이 아니라 객체인데 되나요?
네. 레코드가 `data`나 `items` 같은 키 안에 있으면 도구가 찾은 모든 배열을 나열하고 가장 큰 것부터 시작합니다. 배열이 없는 단일 객체는 한 행짜리 표가 됩니다.