개발

JSON 오류 메시지 읽는 법, 자주 나오는 7가지

끝에 남은 쉼표, 작은따옴표, 주석, 빠진 괄호 등 가장 흔한 JSON 문법 오류 7가지가 무슨 뜻인지, 어떻게 고치는지 예시와 함께 정리했어요.

JSON이 이렇게 엄격한 이유

JSON은 자바스크립트처럼 생겼지만 훨씬 작고 예외가 없는 언어예요. 자바스크립트는 넘어가 주는 주석, 끝에 남은 쉼표, 작은따옴표가 JSON에서는 모두 오류예요. 게다가 오류 메시지는 파서가 문제를 *알아챈* 위치를 가리키는데, 그건 실제 실수 바로 다음인 경우가 많아요.

JSON 포맷터·검사기에 붙여넣으면 줄과 칸 번호, 정확한 글자 아래의 화살표, 무엇이 문제인지 쉬운 말 설명을 보여 줘요.

1~3: 쉼표, 따옴표, 키

1. 끝에 남은 쉼표. 가장 흔한 오류예요.

{"a": 1, "b": 2,} → {"a": 1, "b": 2}

} 나 ] 바로 앞의 쉼표를 지우세요. 목록의 마지막 항목을 지운 뒤에 자주 생겨요.

2. 작은따옴표. JSON의 문자열과 키는 큰따옴표여야 해요.

{'name': 'Kim'} → {"name": "Kim"}

3. 따옴표 없는 키. 자바스크립트 객체에서는 되지만 JSON에서는 안 돼요.

{name: "Kim"} → {"name": "Kim"}

4~5: 괄호와 값 사이 쉼표

4. 닫는 괄호가 빠졌을 때. 객체나 배열 안에 있는 채로 글이 끝나서, 빠진 } 나 ] 는 훨씬 앞에 있어야 하는데 오류는 맨 마지막 줄에 표시돼요. 이럴 땐 들여쓰기가 도움이 돼요. 정렬해 놓고 보면 구조가 어긋나는 곳이 보통 눈에 띄어요.

5. 두 값 사이에 쉼표가 빠졌을 때. 두 곳에서 줄을 복사해 붙였을 때 자주 생겨요.

["red" "blue"] → ["red", "blue"]

6~7: 주석과 자바스크립트 값

6. 주석. // 메모나 /* ... */는 쓸 수 없어요. 지우거나, 형식을 직접 정할 수 있다면 "_comment": "..." 같은 필드로 옮기세요.

7. 자바스크립트에만 있는 값. undefined, NaN, Infinity, 함수는 JSON에 없어요. null, 숫자, 문자열로 바꾸세요. 숫자도 조심하세요. 앞에 0이 붙은 수(007), 더하기 기호(+5), 점으로 끝나는 수(5.)는 모두 오류예요.

덜 흔하지만 헷갈리는 것

  • 문자열 안의 줄바꿈. 문자열은 여러 줄에 걸칠 수 없어요. \n으로 쓰세요.
  • 잘못된 이스케이프. \d나 C:\Users 같은 윈도우 경로요. 문자열 안에서는 역슬래시를 두 번 써야 해요: C:\\Users.
  • JSON 뒤에 남은 글자. 객체 두 개를 연달아 붙였거나 닫는 괄호 뒤에 로그가 섞인 경우예요.
  • 눈에 안 보이는 문자. 메신저나 워드에서 복사하면 곧은따옴표(") 대신 둥근 따옴표(“ ”)가 섞여 들어오기도 해요.

빠르게 고치는 순서

붙여넣고, 메시지를 읽고, 화살표가 가리키는 글자를 고치고, 다시 실행하세요. 한 실수가 다른 실수를 가리는 경우가 많아서 하나씩 고치는 게 대개 가장 빨라요. JSON이 올바르게 되면 정렬한 뒤, 문제없던 버전과 텍스트 비교로 비교해서 실제로 무엇이 바뀌었는지 확인하세요.

정렬기는 브라우저 안에서 동작해서 토큰이나 고객 데이터가 담긴 API 응답도 외부 서버로 보내지 않고 확인할 수 있어요.

이 가이드에서 쓰는 도구