사용 방법
- 왼쪽 입력창에 JSON을 붙여넣으세요 (또는 "예제 불러오기"로 바로 시도해볼 수 있습니다).
- 2칸 또는 4칸 들여쓰기를 선택하세요.
- "포맷"을 눌러 보기 좋게 정리하거나, "압축"을 눌러 한 줄로 압축하세요.
- JSON이 유효하지 않다면 입력창 아래의 오류 메시지를 읽고 문제를 확인하세요.
- "복사"를 눌러 결과를 클립보드로 가져가세요.
예시
입력
{"name":"CodeKitHub","tools":["json","base64"],"free":true}결과
{
"name": "CodeKitHub",
"tools": [
"json",
"base64"
],
"free": true
}같은 데이터를 2칸 들여쓰기로 포맷한 결과입니다. 압축은 반대 작업으로, 모든 공백을 제거합니다.
이 도구는 무엇인가요?
JSON 포맷터는 압축되어 있거나 지저분한 JSON 텍스트를 받아 일정한 들여쓰기와 줄바꿈으로 다시 정리해 읽기 쉽게 만들어줍니다. JSON(JavaScript Object Notation)은 API, 설정 파일, 로그 시스템에서 가장 흔히 쓰이는 데이터 형식이지만, 서버는 대역폭을 아끼려고 보통 한 줄로 길게 이어붙여 보냅니다.
이 도구는 JSON 검증기로도 동작합니다. 브라우저가 쓰는 것과 동일한 엄격한 규칙으로 입력을 파싱하기 때문에, 쉼표가 빠졌거나 키에 따옴표가 없거나 마지막에 불필요한 쉼표가 붙어 있으면 조용히 실패하는 대신 정확한 오류 메시지를 보여줍니다.
JSON은 RFC 8259와 ECMA-404라는 두 표준으로 공식 정의되어 있으며, 이 규격은 자바스크립트 자체보다 의도적으로 더 엄격합니다. 그래서 JS 코드로는 멀쩡히 동작하는 조각이 여기서는 엄격한 JSON 검증에 걸릴 수 있습니다.
실전 팁
- API를 디버깅할 때는 원본 응답을 먼저 붙여넣고 그다음 포맷하세요 — 검증기가 문법 문제의 정확한 줄과 열을 짚어주므로 한 줄짜리 텍스트 덩어리를 눈으로 훑는 것보다 훨씬 빠릅니다.
- 화면에서 읽을 때는 2칸 들여쓰기를 쓰고, URL이나 환경 변수, 채팅 메시지에 JSON을 붙여넣기 전에는 압축하세요 — 그런 곳에서는 공백이 순전히 바이트 낭비입니다.
- JSON5 스타일의 주석과 마지막 쉼표는 손으로 작성한 설정 파일이 '겉으로는 멀쩡해 보이는데' 검증에 실패하는 가장 흔한 두 가지 원인입니다. 엄격한 JSON은 둘 다 허용하지 않습니다.
- 아주 큰 파일(로그, 데이터베이스 덤프)은 필요한 부분만 잘라서 포맷하세요 — 에디터가 계속 반응하고 구조도 훨씬 파악하기 쉽습니다.
실무에서는 이렇게 쓰입니다
가장 흔히 보는 흐름은 이렇습니다. API가 토큰이나 웹훅 페이로드 안에 Base64로 감싸거나 압축된 JSON을 담아 돌려줍니다. 먼저 Base64를 디코딩하고, 그다음 JSON을 포맷하고, 환경 간 차이가 생겼다면 마지막으로 두 응답을 비교(diff)합니다. 여기서는 각 단계마다 전용 도구가 준비되어 있고, 어느 단계에서도 데이터가 브라우저 밖으로 나가지 않습니다.
프론트엔드 개발자들은 포맷만큼이나 압축 방향도 자주 사용합니다. 큰 정적 JSON 파일을 배포한다면, 압축만으로도 gzip이 시작되기 전에 보통 20~30%의 용량을 줄일 수 있습니다.
→ Base64 인코더/디코더 · 텍스트 비교
한국 서비스에서 자주 만나는 JSON
한국 개발자들이 지저분한 JSON을 가장 자주 마주치는 곳은 결제나 본인인증 연동 작업입니다. 카카오페이, 토스페이먼츠, 네이버페이 API 응답은 서명값과 거래 ID가 뒤섞인 압축된 한 줄 JSON으로 오는 경우가 많습니다. 이런 응답을 여기에 붙여넣으면 수백 자 사이에서 추측하는 대신 실제 오류 코드가 담긴 필드를 바로 찾을 수 있습니다.
본인확인이나 전자정부 연계 API를 다룰 때는 JSON이 여러 단계로 중첩되어 있고(개인정보, 서류, 인증 이력), 한글 키나 값이 \uXXXX 형태로 이스케이프되면서 깨져 보이는 경우가 흔합니다. 이 도구는 그런 이스케이프된 값도 그대로 정확히 표시해주므로, 서버로 보내기 전에 한글이 UTF-8로 제대로 인코딩됐는지 눈으로 바로 확인할 수 있습니다.
이럴 때 사용하세요
- 한 줄로 뭉쳐진 압축 API 응답을 디버깅 중에 읽기 위해 구조를 파악할 때.
- package.json이나 JSON 기반 설정 파일이 애플리케이션에서 이상하게 인식되지 않을 때 원인을 찾기 위해 검증할 때.
- 버그 리포트, 코드 리뷰, 문서에 읽기 좋게 정리된 JSON 조각을 공유할 때.
- URL 파라미터에 넣거나 크기 제한이 있는 데이터베이스 컬럼에 저장하기 전에 JSON 페이로드를 최소 크기로 줄일 때.
왜 사용해야 할까요?
카카오페이 결제 웹훅이 실패했는데 로그에 남은 건 끝없이 이어진 한 줄짜리 JSON뿐일 때 — 여기에 붙여넣으면 어떤 "resultCode" 필드가 문제인지 바로 보입니다.
Next.js 빌드가 "Unexpected token in JSON at position 342"라고만 하고 위치를 알려주지 않을 때 — 문제의 .json 파일 내용을 붙여넣으면 정확한 줄과 열을 짚어줍니다.
느린 LTE 환경에서 원격 서버로 앱 설정을 보내야 할 때 — 전송 전에 미리 압축해서 페이로드 크기를 줄일 수 있습니다.
디버깅 중인 JSON에 주민등록번호나 고객 전화번호, 액세스 토큰이 들어 있을 때 — 모든 처리가 브라우저에서 끝나므로 읽기만 하려고 제3자 서버에 업로드할 필요가 없습니다.
동료의 풀 리퀘스트에 압축된 JSON 픽스처 파일이 포함돼 있을 때 — 먼저 포맷해두면 GitHub 디프가 실제로 의미 있게 보입니다.
가입 절차 없이 그냥 열어 쓸 수 있어서 — 새벽 온콜 대응 중 휴대폰으로 열어도 노트북과 똑같이 동작합니다.
자주 묻는 질문
제 JSON 데이터가 서버에 업로드되나요?
아니요. 이 도구는 자바스크립트로 브라우저 안에서만 동작합니다. JSON이 기기 밖으로 나가지 않으므로 민감하거나 사내용인 데이터에도 안전하게 사용할 수 있습니다.
제 JSON은 왜 유효하지 않다고 나오나요?
가장 흔한 원인은 쉼표 누락 또는 중복, 큰따옴표 없이 쓴 키, 큰따옴표 대신 작은따옴표 사용, 마지막 항목 뒤의 불필요한 쉼표, 그리고 주석(JSON은 주석을 허용하지 않습니다)입니다. 입력창 아래 오류 메시지가 파서가 실제로 무엇을 발견했는지 알려줍니다.
포맷과 압축은 뭐가 다른가요?
포맷은 들여쓰기와 줄바꿈을 추가해 사람이 읽기 좋게 만들고, 압축은 불필요한 공백을 모두 제거해 JSON을 최대한 작게 만듭니다. 전송하거나 삽입하기 전에는 압축이 유용합니다.
용량 제한이 있나요?
도구 자체에는 정해진 제한이 없습니다. 다만 모든 처리가 브라우저에서 로컬로 이루어지므로 아주 큰 파일(수십 메가바이트)은 기기 성능에 따라 느려질 수 있습니다.
이 도구가 깨진 JSON을 자동으로 고쳐주나요?
아니요 — 이 도구는 JSON이 정확히 어디에서 깨졌는지 알려줄 뿐, 데이터를 임의로 추측하거나 바꾸지 않습니다. 이는 의도된 동작입니다. 데이터를 조용히 '고쳐버리면' 진짜 버그를 숨길 수 있기 때문입니다.
JSON5나 JSONC(주석, 마지막 쉼표, 따옴표 없는 키 허용)를 지원하나요?
아니요, 의도적으로 그렇습니다 — 이 도구는 API와 JSON.parse()가 실제로 요구하는 엄격한 RFC 8259 규격으로 검증합니다. tsconfig.json 같은 JSONC 설정 파일을 포맷하려면 먼저 주석을 제거하세요. 그러지 않으면 파서가 주석을 오류로 표시합니다.
브라우저 콘솔에서 JSON.stringify를 실행하는 것과 뭐가 다른가요?
JSON.stringify(JSON.parse(x), null, 2)도 같은 재포맷 결과를 주지만, 콘솔을 열어야 하고 입력이 유효하지 않을 때는 줄과 열을 짚어주는 대신 도움이 안 되는 일반 오류만 던집니다.
GraphQL 응답처럼 깊게 중첩된 JSON도 처리되나요?
네 — 인위적인 중첩 깊이 제한은 없고, 브라우저 메모리와 실제로 스크롤할 수 있는 한계만 있습니다. 깊게 중첩된 구조야말로 포맷팅이 가장 도움이 되는 경우입니다. 3~4단계만 넘어가도 한 줄짜리 버전은 거의 읽을 수 없습니다.
오프라인 상태나 인터넷 연결이 없는 브라우저에서도 작동하나요?
네. 페이지가 한 번 로드되면 모든 파싱과 포맷 로직이 자바스크립트로 로컬에서 실행됩니다. 네트워크 연결을 끊어도 계속 JSON을 포맷할 수 있습니다.
오래된 브라우저나 구형 안드로이드 기본 브라우저에서도 되나요?
이 도구는 JSON.parse, Clipboard API 같은 표준 자바스크립트 API를 사용하며, 이는 크롬, 사파리, 파이어폭스, 엣지는 물론 삼성 인터넷 같은 안드로이드 기본 브라우저에서도 오래전부터 폭넓게 지원됩니다. 2017년 이전의 아주 오래된 브라우저만 복사 버튼에서 문제가 생길 수 있습니다.