2013-09-24 4 views
0

JSon объекта (параметры)Синтаксический Json с JQuery затруднился

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

кода

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]; 

Получение ошибки как

params.shopeNumbers неопределенен

Пробовал много с разбором json. Объект JSON поступает с сервера. Так что не может измениться оттуда.

Я готов изменить формат forloop. - Я тоже это пробовал. Я также попытался сделать jsonObject как parameters="{"+parameters+"}" в том числе и в самом начале.

я думаю, что это будет работать, если мы можем сделать параметры, как:

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); 
} 
Смежные вопросы