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格式。- 我也试过了。我还尝试将 jsonObjectparameters="{"+parameters+"}"包含在开始时。

我认为如果我们可以将参数设置为:

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

然后使用“结果”对象调用相同的

还有其他想法吗?

4

1 回答 1

1

你做的是错的:

什么类型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);
 }
于 2013-09-24T08:04:23.767 回答