API 응답으로 받은 JSON이 한 줄로 쭉 이어져 있다. 중괄호와 대괄호가 뒤엉켜서 어디가 어디인지 눈으로 추적이 안 된다. 구조를 파악하려면 일단 정리부터 해야 한다.
한 줄짜리 JSON, 왜 이렇게 오는 걸까
서버에서 JSON을 보낼 때는 보통 공백과 줄바꿈을 다 빼고 보낸다. 데이터 크기를 줄여서 전송 속도를 높이기 위해서다. 사람이 읽으라고 보내는 게 아니라 프로그램이 파싱하라고 보내는 것이니 당연한 선택이다.
문제는 디버깅할 때다. 오류가 어디서 발생했는지 찾으려면 결국 사람 눈으로 봐야 하고, 그러려면 정렬이 필수다.
JSON 정리 3단계
- 포맷팅: 들여쓰기와 줄바꿈을 추가해서 계층 구조를 한눈에 보이게 만든다. 들여쓰기는 2칸, 4칸, 탭 중 선호하는 방식을 고르면 된다.
- 유효성 검사: 괄호 짝이 맞는지, 쉼표가 빠졌는지, 따옴표가 닫혔는지 등 문법 오류를 자동으로 찾아준다. 오류 위치까지 알려주니 일일이 눈으로 찾을 필요가 없다.
- 키 정렬: 객체의 키를 알파벳순으로 정렬하면 두 JSON을 비교할 때 훨씬 편하다. Git diff에서도 불필요한 변경 사항이 줄어든다.
자주 만나는 JSON 오류
| 오류 | 원인 | 예시 |
|---|---|---|
| Unexpected token | 마지막 항목 뒤에 쉼표 | {"a": 1, "b": 2,} |
| Unterminated string | 따옴표 닫지 않음 | {"name": "홍길동} |
| Expected colon | 키와 값 사이 콜론 누락 | {"name" "홍길동"} |
| Unexpected end | 중괄호/대괄호 닫지 않음 | {"list": [1, 2, 3} |
이 오류들은 데이터가 길어질수록 직접 찾기 어렵다. 수백 줄짜리 JSON에서 쉼표 하나 빠진 걸 눈으로 찾는 건 시간 낭비다.
포맷팅과 압축, 언제 뭘 쓰나
- 포맷팅(Prettify)
- 디버깅, 코드 리뷰, 구조 파악 등 사람이 읽어야 할 때. 들여쓰기가 추가되면서 파일 크기는 커진다.
- 압축(Minify)
- 배포, API 전송, 설정 파일 저장 등 프로그램이 처리할 때. 공백을 전부 제거해서 파일 크기를 최소화한다.
JSON 포맷터에 한 줄짜리 JSON을 붙여넣으면 정렬, 검증, 압축, 키 정렬이 버튼 하나로 된다. 파일 크기, 중첩 깊이, 키 개수 같은 통계도 자동으로 표시돼서 데이터 구조를 빠르게 파악할 수 있다.
TIP JSON 파일을 자주 다룬다면 에디터 확장 프로그램도 좋지만, 일회성으로 빠르게 확인할 때는 브라우저 도구가 더 간편하다. 설치 없이 바로 쓸 수 있으니까.
중괄호 지옥에서 헤매는 시간은 줄이고, 실제 로직에 집중하는 시간을 늘리자.