흔한 다섯 버그, 그리고 빠르게 고치는 법
1. Trailing comma
제일 자주 나는 JSON 파스 에러야. {"a": 1,} 는 'expected property name, got }' 를 뱉고 죽어. 고치는 법은 콤마를 지우는 것뿐이고, 다시 안 겪으려면 JSON 규칙을 아는 도구로 저장할 때마다 포맷하게 해둬.
2. Single quote
JS 나 Python 소스에서 그대로 복붙했을 때 나와. {'name': 'Pippa'} 같은 거지. 기계적으로 고치려면 sed "s/'/\"/g" 를 돌리거나, 양이 적으면 그냥 다시 쳐. 이걸 고치겠다고 eval 을 부르지는 마. 아래 경고가 그 이야기야.
3. 주석
JSON 안의 // 주석 이나 /* ... */ 는 그대로 파스 에러야. 떼어내든지, JSONC (VS Code config) 나 JSON5 (파서가 명시적으로 켜줘야 해) 로 갈아타. spec 이랑 싸우지 마.
4. 문자열 안 escape 안 된 특수 문자
날것 그대로의 줄바꿈, 탭, 혼자 남은 백슬래시가 범인이야. \n, \t, \\ 로 써. 에러는 보통 진짜 실수한 줄보다 한 줄 뒤를 가리켜.
5. 인코딩 불일치
파일 맨 앞에 BOM (byte order mark) 이 붙은 UTF-8 은 엄격한 파서를 깨뜨려. Windows 쪽 에디터 상당수가 BOM 을 말없이 붙여놔. 'UTF-8 without BOM' 으로 저장하면 끝이야. 이때 나오는 에러 메시지는 보통 'unexpected token at position 0' 이고.
30 초 디버그 루프: JSON 파일이 안 읽히면 일단
jq . file.json 부터 돌려. 대부분의 언어 표준 라이브러리가 안 해주는 걸 jq 는 해줘. 문법 오류의 줄과 컬럼을 콕 집어주거든. 깊이 중첩된 파일이면 jq -e 를 써. 파스가 실패하면 0 이 아닌 코드로 끝나서 CI 에 그대로 물릴 수 있어.