티스토리 뷰

728x90
반응형

 

 

Uncaught SyntaxError: Unexpected token ' in JSON at position 1 라는 오류를 혹시 보신적 있으신가요??

저는 JSON.parse 함수를 사용할 때 자주보는 오류인 것 같아요!

코드가 한 줄이라면 바로 어떤 이유에서 오류가 난 것인지 해결하기 쉬울텐데, 긴 코드를 복사 붙여넣기 하였거나 한번에 코드를 작성하고 디버깅 해보려다가 오류가 날 경우에는 정말 어떤 이유에서 오류가 났는 지 파악하기가 어려운 것 같아요!

 

그래서 혹시 몰라서 이번에도 오류에 관련해서 정리를 해보려고 합니다!

 

우선 위 오류는 아래의 코드의 경우에 오류가 날 수 있어요!

var num = JSON.parse("{'searchNum':1234}");
console.log(num.searchNum);

정말 헷갈리기 쉬운데요! 사실 JSON.parse 함수에서는 반드시 지켜줘야 하는 사항이 있어요.

바로 JSON 형식인데요!

JSON 의 경우에는 key 에 해당하는 값이 무조건 큰따옴표(double quote)로 감싸져 있어야 한답니다.

아래 코드를 보겠습니다.

var num = JSON.parse('{"searchNum":1234}');
console.log(num.searchNum);

위와 같이 바깥 문자열 부분은 작은따옴표(single quote)로 묶고, JSON 객체 안의 key 값의 문자열은 큰따옴표로 묶어 주게 되면 오류는 해결된답니다!

 

만약 바깥 문자열 부분도 작은따옴표가 아닌 큰따옴표로 묶어주고 싶다면 아래와 같이 백슬래시를 사용해서 하셔도 됩니다!

var num = JSON.parse("{\"searchNum\":1234}");
console.log(num.searchNum);

 

다시 정리하자면, 오류가 나는 원인은 JSON 형식을 지켜주지 않아서 나는 오류였기 때문에 key 에 해당하는 값을 큰따옴표로 묶어주기만 해결할 수 있습니다!

728x90
반응형
댓글