어휴~~밤을 꼬박 샜는데...똑같은 문자열인데....왜 안되는지?

어휴~~밤을 꼬박 샜는데...똑같은 문자열인데....왜 안되는지?

QA

어휴~~밤을 꼬박 샜는데...똑같은 문자열인데....왜 안되는지?

본문

안녕하세요.

지도 좌표값을 jquery로 쿼리해서 뿌려주는 작업입니다.

 

 $.ajax({

            url: 'https://sample.co.kr/skin/content/map/query.php',

            data: { lat: latitude, lng: longitude },

            method: 'GET',

            success: function(positions) {

           ....생략

 

질문) 위의  success: function(positions) 아래에 

 

                console.log(positions);해서 크롬 콘솔에서 값을 보면 

                문자열 "[ {'lat':37.1973520849,'lng' : 125.990807372,'title': '굴업도'} ];" 이게 보입니다.

positions변수에 담긴 것을 그대로 좌표값으로  쓰면 좌표가 찍히지 않습니다.

그런데 그 문자열 그대로 아래 코드로 하면 좌표가 찍힙니다.

               var positions= [ {'lat':37.1973520849,'lng' : 125.990807372,'title': '굴업도'} ];

그런데 이걸 문자열 변수로 만들어 여기에 쌍따옴표를 붙이면 좌표가 찍히지 않습니다.

               var positions= "[ {'lat':37.1973520849,'lng' : 125.990807372,'title': '굴업도'} ];"

 

이 차이 같은데 어떻게 문제를 해결해야 할까요?

 

 

 

 

 

                 

이 질문에 댓글 쓰기 :

답변 5

안되는 문자열이  "[ {'lat':37.1973520849,'lng' : 125.990807372,'title': '굴업도'} ];"  이게 맞나요?

맞다면 문자열의 제일마지막에 반두점 ; 기호는 불필요한것 같습니다. 이때문에 발생하는 문제가 아닐까 생각되어 집니다.

positions.lat

positions.lng

positions.title

위와 같이 접근해 보세요

success: function(positions) {

positions = JSON.parse(positions);

console.log(positions);

}

 

문자열과 배열은 완전히 다른겁니다. 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Data_structures

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

 

https://codepen.io/sinbi/pen/MWZYygV

String 와 Array 는 다른 거구요.

따옴표 없이

positions[0] 이나 positions['lat'] 으로 한번 줘 보세요.

 

<script>
positions= [ {'lat':37.1973520849,'lng' : 125.990807372,'title': '굴업도'} ];
document.write(positions[0]['lat']);
</script>

답변을 작성하시기 전에 로그인 해주세요.
전체 147
QA 내용 검색
filter #json ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT