사용 방법
- 입력칸에 JSON을 붙여넣습니다. API 응답, 설정 파일, 로그 한 줄 등 무엇이든 됩니다.
- 보기 좋게 정렬은 들여쓰기(공백 2칸·4칸·탭)를 넣어 줄을 나누고, 한 줄로 압축은 공백과 줄바꿈을 모두 없앱니다.
- 문법이 틀리면 결과 대신 몇 번째 줄, 몇 번째 칸에서 무엇이 잘못됐는지 보여주고, 해당 글자를 강조합니다.
- 키 이름순 정렬을 켜면 모든 깊이의 객체 키가 사전순으로 정렬됩니다. 두 JSON을 텍스트 비교로 비교하기 전에 켜 두면 순서 차이가 사라집니다.
- 결과는 복사하거나
.json파일로 내려받을 수 있습니다.
자주 나는 JSON 오류
JSON 문법은 RFC 8259(ECMA-404)로 정해져 있고, 자바스크립트 객체 표기보다 엄격합니다.
| 오류 | 잘못된 예 | 올바른 예 |
|---|---|---|
| 끝 쉼표 | {"a": 1,} |
{"a": 1} |
| 작은따옴표 | {'a': 'x'} |
{"a": "x"} |
| 따옴표 없는 키 | {a: 1} |
{"a": 1} |
| 주석 | {"a": 1 // 메모} |
주석은 넣을 수 없음 |
| 빠진 쉼표 | {"a": 1 "b": 2} |
{"a": 1, "b": 2} |
| 문자열 속 줄바꿈 | "첫 줄(엔터)둘째 줄" |
"첫 줄\n둘째 줄" |
| 앞자리 0 | {"zip": 01234} |
{"zip": "01234"} |
undefined·NaN |
{"a": NaN} |
{"a": null} |
“쉼표가 필요합니다” 오류는 표시된 줄이 아니라 바로 앞 줄 끝에서 쉼표가 빠진 경우가 대부분입니다. 그래서 오류 위치와 함께 앞 줄도 같이 보여줍니다.
예시
{"name":"김민지","tags":["vip","new"]}를 공백 2칸으로 정렬하면 7줄이 되고, 키는 2개(name, tags), 최대 깊이는 2입니다. 같은 데이터를 압축하면 41바이트(UTF-8, 한글 1자 3바이트)입니다.
주의할 점
- 큰 정수는 끝자리가 바뀝니다. 자바스크립트 숫자는 2^53−1(9,007,199,254,740,991)까지만 정확합니다.
12345678901234567890같은 ID는 정렬 후12345678901234567000으로 보이므로, 이런 값이 있으면 경고를 띄웁니다. 큰 ID는 문자열로 주고받는 것이 안전합니다. - 같은 키가 두 번 나오면 마지막 값만 남습니다. JSON 표준은 중복 키 처리를 정하지 않았고, 브라우저는 마지막 값을 씁니다.
- 파일 맨 앞의 BOM(U+FEFF)은 자동으로 무시합니다.
자주 묻는 질문
붙여넣은 JSON이 서버로 전송되나요?
아니요. 파싱과 정렬은 모두 브라우저의 JSON.parse/JSON.stringify로 처리하고, 네트워크 요청을 보내지 않습니다. 토큰이나 개인정보가 들어 있는 응답도 안심하고 확인할 수 있습니다. JWT라면 JWT 디코더가 더 편합니다.
“최대 깊이”는 어떻게 세나요?
숫자·문자열 같은 값은 0, 객체나 배열 하나는 1이고, 안에 객체·배열이 들어갈 때마다 1씩 늘어납니다.
탭과 공백 중 무엇을 써야 하나요?
기능상 차이는 없습니다. 웹 프로젝트에서는 공백 2칸이 가장 흔하고, 파이썬 json.dumps(indent=4)는 4칸을 씁니다. 팀의 코드 스타일을 따르면 됩니다.