Объект 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+"}"
и затем вызывая то же самое, используя объект "результаты"
Есть ли другая идея?
То, что вы делаете, неверно:
Какие parameters
типа? это, конечно, не строка. это объект.
Тогда никакого 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);
}