먼저 알아둘 기준
정리된 JSON은 들여쓰기로 중첩 구조를 드러내므로 검토와 버전 비교에 편합니다. 보통 2칸 또는 4칸 들여쓰기를 사용하지만 이 공백은 데이터 값 밖에 있어 의미에 영향을 주지 않습니다.
압축 JSON은 네트워크나 파일 크기를 조금 줄일 수 있지만 HTTP 압축이 이미 적용된 환경에서는 이득이 제한적일 수 있습니다. 사람이 직접 수정해야 하는 설정 파일에는 읽기 쉬운 형식이 더 적합합니다.
키 정렬은 단순 정리보다 큰 변화입니다. JSON 객체는 보통 키 순서에 의미를 두지 않지만 일부 서명, 문자열 비교 또는 잘못 설계된 소비자는 순서 변화에 영향을 받을 수 있습니다.
실제 작업에서 보는 사례
{"a":1,"b":{"c":2}}를 2칸 들여쓰기로 정리해 중첩 객체를 여러 줄로 봅니다.
개발이 끝난 작은 정적 데이터는 한 줄 압축본으로 저장할 수 있습니다.
후행 쉼표가 있는 {"a":1,}는 정리 대상이 아니라 먼저 수정해야 할 문법 오류입니다.
단계별로 확인하는 방법
- 1
입력 전체가 표준 JSON 문법에 맞는지 검사합니다.
- 2
검토 목적이면 2칸 또는 4칸 정리를 선택합니다.
- 3
전송·저장 목적이면 압축 결과와 실제 크기 차이를 확인합니다.
- 4
키 정렬은 소비 시스템에 영향이 없는지 확인한 경우에만 적용합니다.
JSON 처리 방식 비교
| 방식 | 변경 내용 | 적합한 용도 |
|---|---|---|
| 정리 | 들여쓰기와 줄바꿈 추가 | 사람의 검토·디버깅 |
| 압축 | 값 밖의 공백 제거 | 간단한 전송·보관 |
| 키 정렬 | 객체 키 순서 변경 | 일관된 비교가 필요한 데이터 |
주의할 점
- JSON을 JavaScript 객체 리터럴과 혼동해 주석, undefined와 후행 쉼표를 넣지 않아야 합니다.
- 긴 정수와 소수는 파서의 숫자 표현 한계를 확인해야 합니다.
기술적 제한
- 표준 JSON 파싱은 주석, BigInt, Infinity, NaN과 순환 참조를 표현하지 못합니다.
- JSON.parse는 큰 숫자를 IEEE 754 Number로 읽어 정밀도가 손실될 수 있습니다.