개발공작소
article thumbnail
728x90

 

 

이번에 프로젝트를 하면서 새로 레이어를 발행해서 지도에 뿌려주는데, 제대로 뿌려지지 않았다.( GIS관련임 )

디버깅을 해보니까. 아래 구문에서 에러가 발생하였다.

 

--샘플
var testShow = (item.jsonOb) ? JSON.parse(item.jsonOb).showLabel
? true : false
: false;

Unexpected token in JSON at position에러 코드

Unexpected token in JSON at position.... 

즉 JSON을 객체로 변환하려고 하는데 JSON이 없다는 말이다.

보면 item객체안에서 jsonOb라는 녀석을 JSON.parse해주는 코드인데

즉, JSON형태 => 객체형태로 변환해주는 부분이다.

근데 문제는 평소에는 JSON형태가 들어와줘서 에러가 안났는데, 가끔 JSON형태가 아닌

객체형태의 데이터가 들어와서 에러가 났다.

 

객체형태로 변환해주는 메서드에 객체를 넣으니까 에러가 나지...

그래서 저 코드가 실행되기전 해당 데이터가 JSON형태가 아니면 JSON형태로 바꿔주는 코드를 추가해줬다.

 

 

데이터 타입이 JSON인지 확인하기

============================================================================

function IsJsonString() {
    try {
    	<!-- JSON타입이 아니면 exceptuon이 떨어지므로 catch에 잡힘 -->
        var json = JSON.parse(item.symbolCndCn);
    } catch (e) {
    	/* JSON타입이 아닌 데이터를 JSON형식으로 변환해줌 
        *  여기서는 필요한 작업을 수행하도록 하자!
        */
        item.symbolCndCn = JSON.stringify(item.symbolCndCn)
    }
  }

  <!-- 함수호출 -->
  IsJsonString();

 

과 같이 처리해줬다. 즉 JSON타입이 아닌 데이터를 JSON타입으로 변환해주는 것!

 

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!