- 왼쪽 텍스트 창에 JSON을 붙여넣습니다. API 응답, 설정 파일, 로그 등 어떤 JSON이든 가능합니다.
- "정렬" 버튼을 누르면 2칸 들여쓰기로 가독성 좋게 포맷됩니다.
- "압축" 버튼을 누르면 공백과 줄바꿈이 모두 제거된 한 줄 JSON이 만들어집니다.
- 문법 오류가 있으면 정확한 오류 위치를 알려줍니다. 오류를 수정한 뒤 다시 시도하세요.
- "복사" 버튼으로 결과를 클립보드에 저장해 바로 사용합니다.
JSON은 사람이 읽기 좋은 형태와 기계가 주고받기 좋은 형태가 다릅니다. 이 도구는 그 둘을 자유롭게 오가게 해 줍니다.
- 정렬(Pretty): 들여쓰기와 줄바꿈을 넣어 구조를 한눈에 보이게 합니다. API 응답을 분석하거나 디버깅할 때 씁니다.
- 압축(Minify): 공백·줄바꿈을 모두 없애 한 줄로 만듭니다. 전송량을 줄이거나 설정값을 한 줄로 넣을 때 유용합니다.
- 오류 검사: 붙여넣은 JSON에 문법 오류가 있으면 위치를 알려 줘, 어디가 잘못됐는지 바로 찾을 수 있습니다.
JSON 자체가 처음이라면 중괄호·키·값 구조부터 정리한 JSON 입문 가이드를 함께 보세요.
주문 2건이 들어 있는 작은 JSON(키 6개, 중첩 3단계)을 이 도구로 압축·정렬한 결과입니다.
| 형태 | 글자 수 | 줄 수 |
|---|---|---|
| 압축 | 179자 | 1줄 |
| 정렬 (2칸 들여쓰기) | 303자 | 25줄 |
정렬본은 압축본의 약 1.7배입니다. 늘어난 124자는 전부 줄바꿈과 들여쓰기이고 데이터는 한 글자도 다르지 않아, 정렬한 것을 다시 압축하면 원래 179자와 완전히 같아집니다.
정렬·압축 과정에서 값이 달라지는 경우
| 입력 | 결과 | 이유 |
|---|---|---|
{"big":12345678901234567890} | {"big":12345678901234567000} | 정밀하게 담을 수 있는 정수 범위를 넘음 |
{"d":9007199254740993} | {"d":9007199254740992} | 253보다 큰 정수는 1 단위가 어긋날 수 있음 |
{"z":100000000000000000000000} | {"z":1e+23} | 큰 수는 지수 표기로 바뀜 |
{"f":1.0,"y":1.10,"e":1e3} | {"f":1,"y":1.1,"e":1000} | 숫자는 값만 남고 표기는 사라짐 |
{"a":1,"a":2} | {"a":2} | 같은 키가 두 번이면 뒤의 값만 남음 |
{"b":1,"2":2,"1":3} | {"1":3,"2":2,"b":1} | 숫자 모양의 키가 앞으로 정렬됨 |
{"u":"\uac00","s":"a\/b"} | {"u":"가","s":"a/b"} | 이스케이프 표기가 실제 글자로 풀림 |
주문번호나 회원 ID처럼 16자리를 넘는 정수가 숫자 타입으로 들어 있으면 끝자리가 바뀝니다. 이 도구만이 아니라 자바스크립트로 JSON을 읽는 모든 곳에서 같은 일이 일어나므로, 그런 값은 처음부터 따옴표로 감싼 문자열로 주고받아야 합니다. 정렬 결과를 원본과 글자 단위로 비교하는 용도로 쓴다면 위 표의 변화도 "차이"로 잡힌다는 점을 염두에 두세요.
자주 보는 오류 메시지 (크롬·엣지 기준, 브라우저마다 문구가 다릅니다)
| 입력 | 표시되는 메시지 |
|---|---|
{"a":1,} | Expected double-quoted property name in JSON at position 7 (line 1 column 8) |
{'a':1} 또는 {a:1} | Expected property name or '}' in JSON at position 1 (line 1 column 2) |
{"a":1 // 주석 | Expected ',' or '}' after property value in JSON at position 7 (line 1 column 8) |
[1,2,3,] | Unexpected token ']', "[1,2,3,]" is not valid JSON |
{"a":01} | Unexpected number in JSON at position 6 (line 1 column 7) |
{"a":NaN} | Unexpected token 'N', "{"a":NaN}" is not valid JSON |
{"a":1}{"b":2} | Unexpected non-whitespace character after JSON at position 7 (line 1 column 8) |
| 문자열 값 안에 실제 줄바꿈·탭 | Bad control character in string literal in JSON |
position은 0부터, column은 1부터 셉니다. 그래서 position 7과 column 8은 같은 자리, 곧 여덟 번째 글자를 가리킵니다. 끝 쉼표 오류는 쉼표 자체가 아니라 그다음 글자(닫는 괄호) 위치로 표시되므로 표시된 자리의 바로 앞을 보세요.
- API 디버깅: API 응답으로 받은 한 줄짜리 JSON을 "정렬"하면 키-값 구조를 한눈에 파악할 수 있어 디버깅 시간이 크게 줄어듭니다. Postman 없이 빠르게 확인할 때 유용합니다.
- 전송 효율화: 서버 요청 바디나 파일 저장 시 "압축"을 사용해 불필요한 공백을 없애세요. 대용량 JSON에서 수십 KB 이상의 트래픽을 줄일 수 있습니다.
- 흔한 JSON 오류: 마지막 원소 뒤 쉼표(trailing comma), 키가 쌍따옴표가 아닌 경우, 작은따옴표 사용이 가장 자주 발생하는 문법 오류입니다. 오류 메시지에 줄 번호가 표시되므로 해당 위치를 먼저 확인하세요.
브라우저에서 처리하므로 수십 MB 이상의 JSON은 느릴 수 있습니다. 일반적인 API 응답(수십 KB~수 MB)은 즉시 처리됩니다.
네. JavaScript의 JSON.parse/stringify는 유니코드를 완벽히 처리하므로 한글, 이모지 등이 포함된 JSON도 문제없습니다.
현재 다운로드 기능은 없습니다. 복사 버튼으로 클립보드에 저장한 뒤 텍스트 에디터에 붙여넣어 저장하세요.
이 도구의 정렬은 2칸 들여쓰기를 사용합니다. 4칸 등 다른 들여쓰기가 필요하면 정렬된 결과를 에디터에 붙여넣어 조정하거나, 압축본을 원하는 칸 수로 다시 정렬하면 됩니다.
표준 JSON은 주석을 허용하지 않으므로 // 나 /* */ 주석이 들어 있으면 문법 오류로 표시됩니다. 설정 파일(JSONC)처럼 주석이 포함된 경우 주석을 먼저 지운 뒤 정렬하세요.