JSON 포맷터

JSON을 자동으로 정리하고 문법 오류를 검출합니다. 구문 강조로 데이터 구조를 쉽게 파악할 수 있습니다.

들여쓰기
입력
출력
JSON을 입력하면 자동으로 정리됩니다.

JSON 포맷터 안내

JSON 포맷터란?

JSON 포맷터(JSON Beautifier, Pretty Printer)는 압축되거나 한 줄로 되어 있는 JSON 데이터를 적절한 들여쓰기와 줄바꿈으로 정리해 읽기 쉽게 만드는 도구입니다. JSON(JavaScript Object Notation)은 웹 API, 설정 파일, 데이터 교환에서 가장 널리 쓰이는 형식으로, 개발 과정에서 JSON 데이터를 확인하고 분석해야 하는 상황이 자주 발생합니다. 이 도구는 구문 강조, 접기/펼치기, 키 정렬, 유효성 검사 등의 기능을 제공하여 복잡한 JSON 구조를 빠르게 파악할 수 있도록 도와줍니다.

시작하기

  1. 왼쪽 입력 영역에 JSON 데이터를 붙여넣거나 직접 입력합니다.
  2. 실시간 모드가 켜져 있으면 입력 즉시 포맷팅됩니다. 꺼져 있으면 '포맷' 버튼을 클릭합니다.
  3. 들여쓰기 크기(Tab, 2, 4)를 선택해 원하는 출력 형식을 설정합니다.
  4. '키 정렬' 옵션을 활성화하면 객체의 키가 알파벳 순으로 정렬됩니다.
  5. '압축' 버튼으로 공백을 모두 제거한 최소 크기의 JSON을 만들 수 있습니다.
  6. 접기/펼치기 토글로 깊게 중첩된 구조를 부분적으로 탐색합니다.
  7. '복사' 버튼으로 결과를 클립보드에 복사하거나 파일로 다운로드합니다.

기능 소개

  • 구문 강조(Syntax Highlighting)로 키, 문자열, 숫자, 불리언을 색상으로 구분
  • 들여쓰기 크기 선택 (Tab, 2칸, 4칸)
  • 키 알파벳 순 정렬 옵션
  • 접기/펼치기로 중첩 구조 탐색
  • JSON 압축(Minify) 기능으로 공백 제거
  • 실시간 포맷팅 모드 (Live Mode)
  • 오류 위치(줄, 열) 정확히 표시하는 유효성 검사
  • 결과 복사 및 파일 다운로드

주의할 점

  • JSON은 JavaScript 객체보다 엄격합니다. 키와 문자열은 반드시 큰따옴표를 사용하고, 후행 쉼표와 주석은 허용되지 않습니다.
  • 큰 JSON 파일(500KB 이상)은 구문 강조 없이 표시되지만, 포맷팅과 유효성 검사는 정상 작동합니다.
  • '키 정렬' 기능은 diff 비교에 유용합니다. 같은 데이터를 키 순서만 다르게 출력하는 API를 비교할 때 특히 편리합니다.
  • 접기/펼치기를 활용하면 수백 줄의 JSON에서도 원하는 부분을 빠르게 찾을 수 있습니다.
  • 모든 데이터는 브라우저에서만 처리되며, 서버로 전송되지 않습니다.

활용 팁

  • API 응답 데이터를 보기 좋게 정리해서 분석하거나 디버깅
  • 설정 파일(package.json, tsconfig.json 등) 편집 전 구조 확인
  • 압축된 JSON 로그 데이터를 풀어서 가독성 확보
  • 여러 JSON 파일의 키 구조를 정렬하여 일관성 유지
  • 데이터베이스에 저장된 JSON 컬럼 데이터 검토

자주 하는 질문

Q: "유효하지 않은 JSON"이라는 오류가 나오면 어떻게 해야 하나요?

에러 메시지에 표시된 줄과 열 위치를 확인하세요. 흔한 원인으로는 마지막 항목 뒤의 쉼표(후행 쉼표), 작은따옴표 사용, 따옴표 없는 키, 주석 포함 등이 있습니다. JSON은 엄격한 문법을 요구합니다.

Q: JSON과 JavaScript 객체의 차이점은 무엇인가요?

JSON은 JavaScript 객체 리터럴에서 파생되었지만 더 엄격합니다. JSON에서는 모든 키와 문자열 값에 큰따옴표가 필수이고, 함수나 undefined, 주석, 후행 쉼표가 허용되지 않습니다.

Q: 포맷팅과 압축(Minify)은 어떤 차이가 있나요?

포맷팅은 들여쓰기와 줄바꿈을 추가해 사람이 읽기 쉽게 만드는 것이고, 압축은 모든 불필요한 공백을 제거해 파일 크기를 최소화하는 것입니다. 개발 시에는 포맷팅된 형태를, 프로덕션에서는 압축된 형태를 사용합니다.

Q: 대용량 JSON 파일도 처리할 수 있나요?

500KB까지는 구문 강조와 함께 표시됩니다. 그 이상의 파일은 성능을 위해 간소화된 형식으로 표시되지만, 유효성 검사와 포맷팅은 계속 수행됩니다.

Q: 실시간 모드와 수동 모드는 어떤 차이가 있나요?

실시간 모드(Live Mode)는 입력할 때마다 자동으로 포맷팅됩니다. 입력 중 지연이 느껴진다면 수동 모드로 전환한 후 '포맷' 버튼으로 필요할 때만 포맷팅하세요.

Q: 키 정렬은 어떤 순서를 사용하나요?

키는 유니코드 알파벳 순(사전식)으로 정렬됩니다. 숫자가 포함된 키는 문자열로 비교되므로 "item10"이 "item2"보다 앞에 옵니다. 중첩된 객체의 키도 각 수준에서 개별적으로 정렬됩니다.

Q: 접기/펼치기 기능은 어떻게 사용하나요?

포맷팅된 결과에서 객체({})나 배열([]) 옆의 토글 버튼을 클릭하면 해당 구조를 접거나 펼 수 있습니다. '모두 접기/펼치기' 버튼으로 전체를 한 번에 제어할 수도 있습니다.

Q: 입력한 JSON 데이터는 서버로 전송되나요?

아닙니다. 모든 포맷팅과 유효성 검사는 브라우저 내에서 JavaScript로 처리됩니다. 데이터가 외부로 전송되지 않으므로 민감한 정보가 포함된 JSON도 안전하게 사용할 수 있습니다.

Q: JSONC(주석이 있는 JSON)를 처리할 수 있나요?

표준 JSON은 주석을 지원하지 않으므로 주석이 포함되면 파싱 오류가 발생합니다. JSONC 파일을 사용하려면 먼저 주석을 제거한 후 이 도구에 입력하세요.

Q: 포맷팅 결과를 다른 도구에서 바로 사용할 수 있나요?

네, '복사' 버튼으로 포맷팅된 JSON을 클립보드에 복사하여 다른 에디터나 API 테스트 도구에 바로 붙여넣기 할 수 있습니다. 파일로 다운로드하여 프로젝트에 직접 사용하는 것도 가능합니다.