COLUMN - Updated 2026-05-15
JSON 오류 메시지 20개를 실제 예제로 비교
Unexpected token, trailing comma, unexpected end of input 등 JSON 오류 메시지를 원인과 해결 순서 중심으로 비교한다.
Open JSON Error Doctor결론부터 말하면 JSON 오류 메시지는 대부분 "문법이 틀렸는지"와 "JSON이 아닌 응답을 JSON으로 읽었는지"로 나눌 수 있다. Unexpected token < in JSON at position 0은 API가 HTML을 돌려줬을 가능성이 높고, Unexpected end of JSON input은 중간에 끊긴 데이터나 닫는 괄호 누락을 먼저 봐야 한다. 오류 문구보다 중요한 것은 첫 글자, 오류 위치, API 상태 코드, 응답 본문을 함께 확인하는 것이다.
JSON 오류가 반복되는 이유
JSON은 사람이 보기 쉬운 형식이지만 규칙은 엄격하다. 마지막 쉼표 하나, 작은따옴표 하나, 주석 한 줄만 있어도 파서가 실패할 수 있다.
또 API 디버깅에서는 실제 문제의 원인이 JSON 문법이 아닐 때가 많다. 인증 실패, 404, 프록시 오류, 로그인 페이지가 HTML로 돌아왔는데 프론트엔드가 그것을 JSON으로 읽으면 JSON 오류처럼 보인다.
오류 메시지 패턴 표
| 메시지 패턴 | 흔한 원인 | 먼저 볼 것 |
|---|---|---|
Unexpected token < | HTML 응답을 JSON으로 파싱 | 응답 첫 글자, 상태 코드 |
Unexpected token } | 쉼표 위치나 중괄호 구조 오류 | 바로 앞 줄 |
Unexpected token ] | 배열 마지막 항목 뒤 구조 오류 | 배열 닫힘 위치 |
Unexpected token , | trailing comma 또는 빈 값 | 쉼표 앞뒤 값 |
| Unexpected string | 키/값 사이 쉼표 누락 | 이전 속성 끝 |
| Unexpected number | 값 구분 누락 | 숫자 앞 구분자 |
| Unexpected end of JSON input | 닫는 괄호 누락 또는 응답 끊김 | 마지막 줄 |
| Unterminated string | 따옴표 닫힘 누락 | 문자열 시작 위치 |
| Bad control character | 줄바꿈/탭이 문자열에 직접 들어감 | 문자열 내부 |
| JSON.parse: expected property name | 키에 큰따옴표 없음 | 객체 키 |
실제 디버깅 순서
- 응답의 첫 글자가
{또는[인지 확인한다. - HTTP 상태 코드가 200대인지 확인한다.
- JSON Error Doctor로 오류 위치를 확인한다.
- 오류 위치 바로 앞 줄을 먼저 본다.
- trailing comma, 작은따옴표, 주석, 닫는 괄호를 확인한다.
- API 응답이면 Network 탭에서 raw response를 본다.
문법 오류와 API 오류 구분법
문법 오류는 보통 JSON 텍스트 안에서 고칠 수 있다. 반면 API 오류는 서버, 인증, 라우팅, 프록시, CORS, 로그인 리다이렉트 같은 외부 원인을 봐야 한다.
<html>이나 <!doctype html>로 시작한다면 JSON 문법을 아무리 고쳐도 해결되지 않는다. 이 경우에는 API endpoint, header, token, status code를 먼저 봐야 한다.
FixData 도구로 확인하기
JSON Error Doctor에 응답 본문을 붙여 넣으면 JSON 파싱 가능 여부와 오류 위치를 빠르게 확인할 수 있다. 정상 JSON이면 pretty format과 minify로 정리할 수 있다.
관련 문서
- JSON Unexpected token 오류
- Unexpected token < in JSON at position 0
- JSON trailing comma 오류
- JSON unexpected end of input
- API 응답이 JSON이 아니라 HTML일 때
- API 디버깅에서 JSON 오류를 확인하는 순서
업데이트 날짜
2026-05-15