ETC.

JSON.parse) Unexpected token u in JSON at position 0 에러 해결

웹코기 2021. 7. 13. 17:33
728x90

안녕하세요 프런트엔드 개발자 웹코기입니다.

더운 날씨와 함께 더 뜨거워지는 머리로 요즘 계속 실시간 채팅 관련 앱과 관련해서 React, ReactNative를 이용해 작업 중인데요 ~! JSON.parse에서 에러가 나서 한참을 찾다가 문제를 해결해 공유합니다...!!

 

Unexpected token ~?

먼저 서버에서 내려받은 JSON을 파싱 하기 위해 아래와 같이 코드를 작성했습니다.

if (lastMessage != null && lastMessage != undefined) {
	const a = JSON.parse(lastMessage.data);
}

 

서버에서 내려받은 JSON 데이터를 parse 하는 과정에서 아래의 오류가 발생했습니다.

문법 에러? 기대하지 않은 토큰?이라고 하는데 겉보기엔 전혀 에러를 찾을 수가 없어 한참을 더 고생했어요...

 

 

그리고 에러 해결

알고 보니 lastMessage 또는 lastMessage.data가 비었는데 파싱을 하려고 해서 계속 위의 에러가 난 것이었습니다.

 

여기서 중요한 점은 lastMessage는 제가 짠 소스 내부에선 로직상 여러 번 호출되기 때문에,

단순히 lastMessage!=null && lastMessage!= undefined로는 모든 에러를 걸러낼 수 없었어요.

 

그래서 부정 기호! 를 사용해서 확실히 걸러냈습니다. (확실하겠죠?)

"lastMessage 외에 에러 경우의 수를 모두 찾고, 정상적인 값이 들어있다면 파싱 해라"라고 정확히 코드 구문에 작성을 했어요.

if ( !lastMessage || !lastMessage.data ) {
	return
}else{
    const jsonData = JSON.parse(lastMessage.data);
    console.log(jsonData)
}

 

728x90