API 응답을 받았는데 JSON이 한 줄로 쭉 이어져 있다. 중괄호와 대괄호가 어디서 시작하고 끝나는지 눈으로 따라가기가 불가능하다. 디버깅을 하려면 구조부터 파악해야 하는데, 이 상태로는 키 하나 찾는 것도 고역이다.
왜 JSON 포맷팅이 필요한가
서버에서 보내는 JSON은 대부분 압축 상태다. 용량을 줄이기 위해 공백과 줄바꿈을 제거한 것인데, 기계는 잘 읽지만 사람이 보기엔 적합하지 않다.
{"name":"김철수","age":30,"address":{"city":"서울","zip":"06000"}}
이걸 정렬하면 아래처럼 된다.
{
"name": "김철수",
"age": 30,
"address": {
"city": "서울",
"zip": "06000"
}
}
들여쓰기가 들어가면 중첩 구조가 한눈에 보인다. 키 이름을 찾거나 빠진 항목을 확인하는 게 훨씬 쉬워진다.
정렬, 압축, 검증의 차이
- 정렬(Pretty Print): 들여쓰기와 줄바꿈을 넣어서 사람이 읽기 편한 형태로 변환. 디버깅, 코드 리뷰에 사용한다.
- 압축(Minify): 정렬의 반대. 공백과 줄바꿈을 전부 제거해서 파일 크기를 줄인다. 서버 전송이나 저장 시 용량 절약에 쓴다.
- 검증(Validate): JSON 문법이 올바른지 확인. 쉼표 누락, 괄호 짝 불일치, 따옴표 빠짐 같은 오류를 잡아준다.
TIP API 응답이 에러를 뱉는데 원인을 모르겠으면, JSON 검증부터 돌려보자. 쉼표 하나 빠졌거나 문자열에 큰따옴표 대신 작은따옴표를 쓴 경우가 의외로 많다.
사용법
JSON 포맷터에 접속하면 좌우 2단 화면이 나온다. 왼쪽에 JSON을 붙여넣고 상단의 정렬 버튼을 누르면 오른쪽에 정리된 결과가 표시된다.
들여쓰기는 2칸, 4칸, 탭 중에서 고를 수 있다. 팀에서 쓰는 코딩 컨벤션에 맞추면 되고, 키 정렬 옵션을 켜면 객체 키가 알파벳순으로 재배열된다. 정렬 후에는 파일 크기, 중첩 깊이, 총 키 개수까지 통계로 보여준다.
한 줄짜리 JSON 뭉치를 눈으로 해독하려고 시간을 쓸 필요가 없다. 붙여넣기 한 번이면 구조가 바로 보인다.