API에서 응답받은 JSON이 이렇게 생겼다면 읽을 수 없다.
{"users":[{"id":1,"name":"홍길동","email":"[email protected]"},{"id":2,"name":"김철수","email":"[email protected]"}]}
사람 눈으로 구조를 파악하려면 들여쓰기와 줄바꿈이 필요하다. 에디터에서 직접 정리할 수도 있지만, 데이터가 수백 줄이면 시간이 오래 걸린다.
JSON 포맷팅(정렬)이 필요한 경우
- API 응답 데이터를 디버깅할 때
- 설정 파일(config.json)의 구조를 확인할 때
- 다른 개발자에게 데이터를 공유할 때
- 에러 원인을 찾기 위해 JSON 구조를 훑어볼 때
포맷팅, 검증, 압축의 차이
| 기능 | 하는 일 | 언제 쓰나 |
|---|---|---|
| 포맷팅(정렬) | 들여쓰기·줄바꿈 추가 | 읽기 쉽게 구조를 파악할 때 |
| 검증 | 문법 오류 검출 | API 요청이 실패할 때 원인 확인 |
| 압축(Minify) | 공백·줄바꿈 전부 제거 | 전송 데이터 크기를 줄일 때 |
| 키 정렬 | 키를 알파벳 순으로 재배치 | 두 JSON을 비교할 때 |
흔한 JSON 문법 오류
JSON 검증에서 자주 걸리는 실수들이 있다.
- 마지막 쉼표 —
{"a":1, "b":2,}처럼 마지막 항목 뒤에 쉼표가 남아 있으면 에러. 자바스크립트에서는 허용되지만 JSON 표준에서는 안 된다. - 작은따옴표 —
{'name':'홍길동'}은 JSON이 아니다. 반드시 큰따옴표를 써야 한다. - 주석 —
// 이건 주석을 넣으면 파싱 에러. JSON은 주석을 지원하지 않는다. - 키에 따옴표 누락 —
{name: "홍길동"}은 자바스크립트 객체이지 JSON이 아니다.
에러 메시지만 보고 어디가 잘못됐는지 찾기 어렵다면, JSON 포매터에 붙여넣고 검증 버튼을 누르면 오류 위치와 내용이 표시된다. 들여쓰기 단위(2칸, 4칸, 탭)도 선택할 수 있고, 데이터의 크기, 중첩 깊이, 키 개수 같은 통계도 확인 가능하다.
TIP JSON 두 개를 비교해야 할 때는 양쪽 모두 키 정렬을 적용한 뒤 비교하면 차이점을 훨씬 빠르게 찾을 수 있다.
API 연동 작업에서 JSON 파싱 에러는 가장 흔한 문제 중 하나다. 데이터를 보내기 전에 검증 한 번만 거치면 불필요한 디버깅 시간을 줄일 수 있다.