어디서 깨졌는지 찾기
붙여넣은 JSON이 통과하지 못하면 몇 번째 줄 몇 번째 칸에서 파서가 멈췄는지 표시됩니다. 그 자리를 그대로 믿기보다, 한 줄 위를 먼저 보세요. 쉼표를 빠뜨리거나 하나 더 붙인 경우 파서는 그다음 토큰에 가서야 이상을 알아차립니다.
자주 걸리는 것은 정해져 있습니다.
- 마지막 항목 뒤의 쉼표. 자바스크립트 객체에서는 허용되지만 JSON에서는 오류입니다.
- 작은따옴표.
'name'은 JSON 문자열이 아닙니다. 키와 값 모두 큰따옴표를 씁니다. - 주석.
//나/* */를 담은 설정 파일은 JSON이 아니라 JSONC입니다. - 따옴표 없는 키.
{name: "값"}형태는 자바스크립트 문법입니다. NaN과Infinity. 숫자처럼 보이지만 JSON 규격에 없습니다. 로그에서 복사할 때 딸려 옵니다.
압축은 언제 쓰나
들여쓰기를 없앤 압축 결과는 공백을 전부 뺀 한 줄입니다. 설정 값으로 넣거나, 환경 변수 한 칸에 담거나, curl 요청 본문에 붙일 때 이 형태가 필요합니다. 파일 크기도 줄지만 요즘 서버는 응답을 어차피 gzip으로 눌러 보내므로, 전송량 자체가 이유가 되는 경우는 많지 않습니다.
반대로 코드 저장소에 넣을 파일이라면 들여쓰기를 유지하세요. 압축된 JSON은 한 글자만 바뀌어도 diff가 파일 전체로 잡혀서 리뷰가 어려워집니다.
키 순서와 공백
정렬하면 키 순서가 원본 그대로 유지됩니다. JSON 객체의 키 순서에는 의미가 없다고 규격이 말하지만, 실제로는 대부분의 파서가 넣은 순서를 지키기 때문에 이 도구도 순서를 바꾸지 않습니다.
들여쓰기는 공백 2칸이 가장 흔하고, 4칸은 파이썬 쪽 도구와 함께 쓸 때 자주 보입니다. 탭은 파일 크기를 조금 줄여 주지만 편집기 설정에 따라 폭이 달라 보입니다. 팀 저장소라면 이미 쓰는 쪽을 따라가면 됩니다.
민감한 값이 든 JWT나 응답 본문
이 도구는 입력을 서버로 보내지 않습니다. 브라우저 안에서 파싱하고 다시 문자열로 만들 뿐이라, 토큰이나 고객 정보가 든 응답을 붙여넣어도 기기 밖으로 나가지 않습니다. 다만 사내 규정이 사외 웹페이지 사용 자체를 막는 경우가 있으니, 실제 운영 데이터라면 규정을 먼저 확인하세요.