JSON 포맷터
JSON을 보기 좋게 정렬하고, 문법 오류를 검증하고, 한 줄로 압축합니다.
'정렬'로 보기 좋게, '압축'으로 한 줄로 만듭니다. 모든 처리는 브라우저에서만 이뤄집니다.
정렬과 압축, 안에서 무슨 일이 일어나나요?
이 도구는 화면에 입력한 텍스트를 브라우저에 내장된 표준 JSON 파서(JSON.parse)로 한 번 해석한 다음, 다시 문자열로 되돌립니다(JSON.stringify). '정렬'은 해석된 데이터를 2칸 들여쓰기로 다시 써서 계층 구조가 눈에 보이게 하고, '압축'은 들여쓰기와 줄바꿈, 불필요한 공백을 모두 제거해 한 줄로 만듭니다. 중요한 건 이 과정에서 값 자체는 하나도 바뀌지 않는다는 점입니다. 키 순서, 숫자, 문자열 내용은 그대로 유지되고 오직 '보이는 형태'만 달라집니다. 그래서 정렬했다가 다시 압축해도 데이터 손실 없이 원래 의미가 보존됩니다.
들여쓴 JSON과 압축한 JSON, 언제 뭘 쓰나
둘은 용도가 반대입니다. 사람이 읽고 디버깅할 때는 정렬본이 필요하고, 기계가 주고받거나 저장할 때는 압축본이 유리합니다.
- 정렬본: API 응답을 눈으로 확인하거나, 어디에 어떤 키가 있는지 구조를 파악할 때. 코드 리뷰나 문서에 붙여넣을 때도 읽기 편합니다.
- 압축본: 네트워크로 전송하거나 설정값을 환경변수·DB 컬럼에 한 줄로 넣을 때. 공백이 사라져 용량이 줄고, 로그 한 줄에 담기도 좋습니다.
- 실무 팁: 개발 중에는 정렬본으로 보다가, 배포하는 설정 파일이나 요청 바디는 압축본으로 넣는 식으로 나눠 쓰면 편합니다.
실제로 이렇게 씁니다
- 서버 로그에 한 줄로 찍힌 긴 응답을 복사해 정렬하면, 어느 필드가 null이고 어느 배열이 비었는지 한눈에 보입니다.
- 프론트엔드에서 '갑자기 파싱이 안 된다'는 응답을 넣어보면, 정렬을 시도하는 순간 문법 오류 위치를 알려줘 서버·클라이언트 중 어디 문제인지 빠르게 가릅니다.
- 패키지 설정이나 웹훅 페이로드 예시를 남에게 공유하기 전에 정렬해두면, 받는 사람이 구조를 훨씬 쉽게 이해합니다.
- Postman이나 브라우저 개발자도구에서 복사한 응답을 정렬해, 중첩된 객체 안쪽 값까지 펼쳐 확인합니다.
오류 메시지를 읽는 법
'정렬'을 눌렀을 때 빨간 오류가 뜬다면, 대부분은 몇 가지 정해진 실수입니다. 오류 메시지에 나오는 위치(줄·글자)를 먼저 확인하고 그 근처를 보세요. 흔한 원인은 다음과 같습니다.
- 후행 콤마: 배열이나 객체의 마지막 항목 뒤에 콤마가 남아 있는 경우. 표준 JSON은 이를 허용하지 않습니다.
- 작은따옴표: JSON의 키와 문자열은 반드시 큰따옴표(")를 써야 합니다. 자바스크립트 객체 습관으로 작은따옴표(')를 쓰면 오류가 납니다.
- 키에 따옴표 누락: {name: "kim"}처럼 키를 따옴표 없이 쓰면 안 되고 {"name": "kim"}이어야 합니다.
- 괄호·중괄호 짝: 여는 { [ 와 닫는 } ] 개수가 맞지 않으면 오류가 납니다.
- 제어문자·줄바꿈: 문자열 안에 그냥 줄바꿈이 들어가면 오류입니다. \n으로 이스케이프해야 합니다.
자주 하는 오해
- '정렬하면 데이터가 바뀐다'는 오해: 형식만 바뀌고 값은 그대로입니다. 다만 JSON 표준상 키 순서에 의미가 없으므로, 순서에 의존하는 코드라면 주의하세요.
- '주석을 넣어도 된다'는 오해: //나 /* */ 주석은 표준 JSON이 아닙니다. JSONC나 JSON5 같은 확장 문법은 이 도구가 오류로 처리하니, 붙여넣기 전에 주석을 지우세요.
- '숫자는 아무렇게나 써도 된다'는 오해: 앞에 0이 붙은 숫자(0123), 16진수, NaN, Infinity, undefined는 유효한 JSON이 아닙니다.
- '큰 숫자도 정확하다'는 오해: 아주 큰 정수(2의 53승 초과)는 파싱 과정에서 정밀도가 흔들릴 수 있으니, 중요한 ID는 문자열로 다루는 편이 안전합니다.
주의사항과 한계
- 표준 JSON 문법만 지원합니다. 후행 콤마, 주석, 작은따옴표는 모두 오류로 처리됩니다.
- 매우 큰 JSON(수십 MB 이상)은 브라우저 메모리와 화면 렌더링에 부담을 줄 수 있어 느려지거나 멈출 수 있습니다.
- 정렬·압축은 형식만 바꾸며 값의 유효성(예: 날짜가 실제로 맞는지, 필수 필드가 있는지)까지 검사하지는 않습니다.
- 키 중복이 있는 JSON은 표준 파서가 보통 마지막 값만 남기므로, 앞쪽 중복 키가 조용히 사라질 수 있습니다.
입력한 데이터는 어디로 가나요?
모든 처리는 여러분의 브라우저 안에서만 일어납니다. 정렬, 검증, 압축 어느 것도 입력한 JSON을 서버로 보내거나 저장하지 않습니다. API 키가 담긴 응답, 개인정보가 들어간 페이로드, 사내 설정값처럼 민감한 데이터를 붙여넣어도 외부로 나가지 않으니 안심하고 쓸 수 있습니다. 다만 공용 PC라면 작업 후 입력창을 비우고, 브라우저에 남는 기록에도 신경 쓰는 편이 좋습니다.
입력한 JSON은 브라우저에서만 처리하며 서버로 전송하거나 저장하지 않습니다. 민감한 데이터가 담긴 JSON도 안심하고 붙여넣을 수 있습니다.
개인정보처리방침 보기 →자주 묻는 질문
입력한 JSON이 서버로 전송되나요?
아니요. 정렬, 검증, 압축은 모두 브라우저에 내장된 표준 JSON 파서로만 처리되며 입력한 데이터를 서버로 전송하거나 저장하지 않습니다. API 응답이나 개인정보가 담긴 데이터도 외부로 나가지 않아 안전합니다.
'정렬'을 눌렀는데 오류가 떠요. 어디부터 봐야 하나요?
오류 메시지에 표시된 위치 근처를 먼저 확인하세요. 가장 흔한 원인은 마지막 항목 뒤에 남은 콤마, 큰따옴표 대신 쓴 작은따옴표, 따옴표가 빠진 키입니다. 이 세 가지만 점검해도 대부분의 오류가 해결됩니다.
주석이나 후행 콤마가 있는 JSON도 되나요?
안 됩니다. 표준 JSON은 주석(//, /* */)과 후행 콤마를 허용하지 않아 오류로 처리됩니다. JSONC, JSON5 같은 확장 문법을 쓰던 파일이라면 주석과 마지막 콤마를 지운 뒤 넣어야 정렬됩니다.
정렬하면 키 순서나 값이 바뀌지 않나요?
값은 그대로 유지되고 형식만 바뀝니다. 키 순서도 대체로 보존되지만, JSON 표준에서는 객체 키의 순서에 의미가 없다는 점은 기억해 두세요. 순서에 의존하는 로직이 있다면 배열을 쓰는 것이 안전합니다.
압축하면 용량이 얼마나 줄어드나요?
들여쓰기와 줄바꿈, 공백이 많던 정렬본일수록 크게 줄고, 원래 한 줄에 가깝던 데이터는 거의 그대로입니다. 값 자체는 손대지 않으므로 압축본을 다시 정렬해도 원래 내용이 그대로 복원됩니다.
큰 숫자로 된 ID가 이상하게 바뀌는 것 같아요.
자바스크립트 JSON 파서는 2의 53승을 넘는 큰 정수에서 정밀도가 깨질 수 있습니다. 주문번호나 사용자 ID처럼 정확도가 중요한 큰 숫자는 처음부터 문자열("...")로 다루는 것을 권장합니다.