Разбор Json с помощью jQuery затруднен

0

Объект Json (параметры)

"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+"}"

и затем вызывая то же самое, используя объект "результаты"

Есть ли другая идея?

Теги:
for-loop
format
parsing

1 ответ

1
Лучший ответ

То, что вы делаете, неверно:

Какие parameters типа? это, конечно, не строка. это объект.

Изображение 174551

Тогда никакого 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);
 }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню