JSON을 보기 좋게 정렬하는 방법
- JSON을 붙여넣거나,
.json파일을 편집기에 끌어다 놓거나, URL에서 불러옵니다. - 포맷을 클릭하고(또는 Ctrl+Enter) 공백 2칸, 공백 4칸, 탭 중에서 선택합니다. 압축은 모든 공백을 제거하고, 키 정렬은 속성을 알파벳순으로 정렬합니다.
- JSON이 유효하지 않으면 오류 상자에 줄, 열, 원인이 표시되고 해당 줄이 강조됩니다. 복구는 후행 쉼표, 주석, 따옴표 같은 오류를 자동으로 고칩니다.
데이터를 그대로 보존하는 JSON 포맷터
많은 온라인 포맷터는 데이터를 JSON.parse와 JSON.stringify로 처리하기 때문에 데이터가 모르는 사이에 바뀝니다. 12345678901234567890 같은 큰 정수는 반올림되고, 1.50은 1.5가 되며, "10" 같은 숫자 키는 객체의 맨 앞으로 이동합니다. 이 JSON 포맷터는 공백만 바꾸므로 모든 숫자, 이스케이프 시퀀스, 키가 입력한 그대로 유지됩니다.
- 포맷(보기 좋게 정렬) – 공백 2칸, 공백 4칸 또는 탭으로 들여쓰기합니다.
- 압축 – 모든 공백을 제거해 크기를 최소화합니다.
- 키 정렬 – 모든 단계의 객체 키를 알파벳순으로 정렬합니다. 두 파일을 비교하기 전에 유용합니다.
- 검증 – 엄격한 JSON 파서가 첫 번째 오류의 정확한 줄과 열을 알려 줍니다.
- 통계 – 크기, 키·객체·배열 개수, 중첩 깊이를 보여 줍니다.
JSON 복구로 고칠 수 있는 오류
JavaScript 코드, Python, 로그, AI 채팅 답변에서 복사한 JSON은 거의 맞지만 조금씩 틀린 경우가 많습니다. 복구 기능은 이를 엄격한 JSON으로 바꿔 줍니다.
| 문제 | 수정 전 | 수정 후 |
|---|---|---|
| 후행 쉼표 | {"a": 1,} | {"a": 1} |
| 주석 | // note, /* … */ | 제거됨 |
| 작은따옴표 | {'a': 'b'} | {"a": "b"} |
| 따옴표 없는 키 | {a: 1} | {"a": 1} |
| Python 값 | True, False, None | true, false, null |
| NaN, Infinity, undefined | {"x": NaN} | {"x": null} |
| 누락된 쉼표 | [1 2 3] | [1, 2, 3] |
| 닫히지 않은 괄호 | {"a": [1, 2 | {"a": [1, 2]} |
| 여러 값(JSON Lines) | {"a":1} {"a":2} | [{"a":1}, {"a":2}] |
코드와 명령줄에서 JSON 정렬하기
- JavaScript:
JSON.stringify(data, null, 2) - Python:
json.dumps(data, indent=2)또는 터미널에서python -m json.tool file.json - jq: 포맷은
jq . file.json, 압축은jq -c ., 키 정렬은jq -S . - PHP:
json_encode($data, JSON_PRETTY_PRINT)
단, 이 방법들은 모두 데이터를 다시 인코딩하므로 아주 큰 숫자가 반올림될 수 있습니다. 이 페이지의 포맷터는 그렇지 않습니다.
왜 JSON Format Online인가요?
- 무료모든 도구를 사용 제한, 계정, 워터마크 없이 무료로 이용할 수 있습니다.
- 개인정보 보호모든 처리는 브라우저에서 로컬로 이루어집니다. 파일은 절대 업로드되지 않습니다.
- 빠른 속도페이지가 가벼워 어떤 기기에서든 바로 로드됩니다.
- 어디서나 사용 가능Windows, macOS, Linux, Android, iPhone에서 사용할 수 있습니다.
자주 묻는 질문
JSON이 서버에 업로드되나요?
아니요. 포맷, 검증, 복구는 모두 브라우저 안에서만 실행됩니다. URL 불러오기만 서버를 거쳐 파일을 가져오는데, 브라우저가 다른 사이트에서의 직접 다운로드를 대부분 차단하기 때문입니다. 내용은 그대로 전달될 뿐 저장되지 않습니다.
JSON에서 “Unexpected token” 오류가 나는 이유는 무엇인가요?
JSON은 JavaScript보다 엄격합니다. 키와 문자열에는 큰따옴표가 필요하고, 후행 쉼표와 주석은 허용되지 않으며, NaN이나 undefined 같은 값은 존재하지 않습니다. 검증기가 정확한 문제와 위치를 알려 주고, 복구 기능이 이런 오류 대부분을 자동으로 고칩니다.
포맷하면 숫자나 키 순서가 바뀌나요?
아니요. 큰 정수, 소수점 끝의 0, 이스케이프 시퀀스, 키 순서가 그대로 유지됩니다. 속성의 순서를 바꾸는 것은 키 정렬뿐이며, 이때도 모든 숫자는 원래 자릿수를 유지합니다.
얼마나 큰 JSON까지 처리할 수 있나요?
최신 데스크톱 브라우저에서는 수십 MB 크기의 파일도 처리할 수 있습니다. 편집기는 화면에 보이는 줄에만 줄 번호를 그리므로 긴 문서도 빠르게 동작하며, 큰 파일 깊숙한 곳에 있는 오류도 정확히 찾아냅니다.