2013-09-24 2 views
0

JSON 오브젝트 (파라미터)파싱 JSON 곤란

"selectedShopeNumber":1765653589, "shopeNumbersForSelectedNames":[], "shopeNumbers":[1765653589, 660791222],"shopeNames":["Shope 1","Shope 2"] 

코드

params.shopeNumbers 같은 오류 얻기

var params = JSON.parse("[" + parameters + "]"); 
for (var i = 0; i < params.shopeNumbers.length; i++) { 
    var thisShopeDiv = $(params.shopeNumbers[i].toString()); 
    var thisShopeHeader = thisShopeDiv.getFirstElementByClassName('shopeHeader'); 

    // observe the shope header for changing shopes and highlighting the 'tab' 
    Event.bind(thisShopeHeader, 'click', this.switchShope.bindAsEventListener(this, params.shopeNumbers[i])); 
    Event.bind(thisShopeHeader, 'mouseover', this.hoverHeader.bindAsEventListener(this, thisShopeHeader, 'on')); 
    Event.bind(thisShopeHeader, 'mouseout', this.hoverHeader.bindAsEventListener(this, thisShopeHeader, 'off')); 

    // initialize this shopeSet 
    this.initShopeSet(thisShopeDiv, params.shopeNumbers[i], params.shopeNames[i]); 
} 

    this.shopeObj[shopeId] = {}; 
    var flt = this.shopeObj[shopeId]; 

하는 결과가 정의되지

,174,

json 파싱에 많은 노력을 기울였습니다. JSON 개체가 서버에서옵니다. 그래서 거기에서 바꿀 수 없습니다.

forloop 형식을 변경할 준비가되었습니다. - 나도 그랬어. 또한 시작 자체에 포함하여 parameters="{"+parameters+"}"으로 jsonObject를 만들려고했습니다. 다른 아이디어가 있습니까

개체를 다음

parameters = "{ results :"+parameters+"}" 

과 같은 호출 "결과"를 사용하여 :

나는 우리가 같이 매개 변수를 만들 수 있다면 그것은 작동 생각? 당신이 무엇

답변

1

이 잘못되었습니다 :

parameters이다

어떤 종류의? 확실히 문자열이 아닙니다. 그것은 대상입니다.

enter image description here

그런 다음, 더 parse이 필요하지 않습니다. 귀하의 데이터는 문자열 json 표현이 아닙니다.

대신이 작업을 수행 :

var params = parameters ;

작업 예 : http://jsfiddle.net/gbrnD/

var params = { "selectedShopeNumber":1765653589, "shopeNumbersForSelectedNames":[], "shopeNumbers":[1765653589, 660791222],"shopeNames":["Shope 1","Shope 2"] }; 

for (var i = 0; i < params.shopeNumbers.length; i++) { 
    var thisShopeDiv = params.shopeNumbers[i].toString(); 



    alert(thisShopeDiv); 
}