2013-03-28 2 views
1

다음 문자열을 여러 객체로 평가하려면 어떻게해야합니까? 지금은 처음에는 나머지를 무시하고, PHP는 무시합니다. PHP를 통해 생성되므로, jQuery 플러그인의 옵션으로 사용할 수 있도록 평가해야합니다.여러 객체가있는 문자열에서 eval 사용

  { 
       latLng:['.$result->lat.','.$result->lon.'], 
       options: 
       { 
        shadow: 
        { 

         url: "'.BASE_URL.'css/png/markerBg.png", 
         scaledSize: 
         { 
          width:40, 
          height:43.5 
         } 
        }, 
        icon: 
        { 
         url: "'.$result->user->profileImage.'", 
         scaledSize: 
         { 
          width:32, 
          height:32 
         }, 
         anchor: 
         { 
          x: 16, 
          y: 40 
         } 

        } 

       } 

       }, 
      { 
       latLng:['.$result->lat.','.$result->lon.'], 
       options: 
       { 
        shadow: 
        { 

         url: "'.BASE_URL.'css/png/markerBg.png", 
         scaledSize: 
         { 
          width:40, 
          height:43.5 
         } 
        }, 
        icon: 
        { 
         url: "'.$result->user->profileImage.'", 
         scaledSize: 
         { 
          width:32, 
          height:32 
         }, 
         anchor: 
         { 
          x: 16, 
          y: 40 
         } 

        } 

       } 

       }, 
      { 
       latLng:['.$result->lat.','.$result->lon.'], 
       options: 
       { 
        shadow: 
        { 

         url: "'.BASE_URL.'css/png/markerBg.png", 
         scaledSize: 
         { 
          width:40, 
          height:43.5 
         } 
        }, 
        icon: 
        { 
         url: "'.$result->user->profileImage.'", 
         scaledSize: 
         { 
          width:32, 
          height:32 
         }, 
         anchor: 
         { 
          x: 16, 
          y: 40 
         } 

        } 

       } 

       } 
+1

문자열을 [] 안에 넣을 수 있습니다. 결과는 객체의 배열이어야합니다. – david

+0

Eval을 사용해야하는 경우 문제가 있음을 압니다. –

답변

3

나는 eval - JSON.parse()을 피하는 것이 훨씬 안전합니다. 객체가 이미 쉼표로 구분 된 것처럼 보이기 때문에 배열로 변환하고 구문 분석 할 수 있어야합니다. 예 :

var objectArray = JSON.parse('[' + objectString + ']'); 

여기에서 objectString은 위에 붙여 넣은 값입니다. objectArray은 각 객체가 포함 된 배열이됩니다.

+0

예, JSON.parse()를 먼저 사용해 보았습니다. 그러나 다음과 같은 오류가 계속 발생했습니다. SyntaxError : JSON 구문 분석 오류 : '}'가 예상되어 모든 문제를 해결했지만 아무 것도 시도하지 않았습니다 ... –

+0

흠 .. . 두 번째 생각에, 그것은 정말로 유효한 JSON이 아니며 단지 쉼표로 구분 된 객체 리터럴입니다. PHP 코드를 제어 할 수 있습니까? 이 형식은 모든 브라우저에서 친숙하지 않습니다. – jmar777

+0

그 형식은 jQuery 플러그인에 필요한 형식으로 필요한 것입니다 .... 이것은 PHP가 아니고 Javascript입니다. –

0

JSON.parse를 사용하는 것이 더 쉽지 않을까요?