0

我通过 XHR 请求获得了一堆 JSON 数据,并取回了以下数据:

{"data_list" : [[1, "Title1", "0.54%"], [2, "Title2", "2.98%"]]}

然后我尝试遍历该数据,并使用 console.log 将其放入控制台:

var len = json.data_list.length;
for(var i = 0; i < len; i++)
{
   console.log(json.data_list[i]);
}

但我没有得到相同的百分比:

[1, "Title1", "0.24%"]
[2, "Title2", "0.00%"] 

任何人都知道为什么我会为前两个字段获得正确的数据,但百分比不一样?即使我去掉 JSON 响应中的百分号,我仍然得到错误的数字。

假设变量是有效的,我正在使用将 json 变量映射到 json.data_list 的库。

我没那么聪明

XHR 请求在某个地方被 Dojo 破坏了。谢谢您的帮助!

4

2 回答 2

3

“data-list”是一个无效的标识符,正如您所期望的那样,它被解释为减法。尝试使用括号表示法:

json["data-list"].length

json["data-list"][i]

演示:http: //jsfiddle.net/7bgvV/

于 2013-07-17T19:36:30.543 回答
2

var len = json.data-list.length;看起来像是 JavaScript VM 的减法运算。您需要使用此方法:json['data-list'].length.

如果您无法控制返回此数据的方法,请尝试以下操作:

var ajaxStr = '{"data-list" : [[1, "Title1", "0.54%"], [2, "Title2", "2.98%"]]}]';
ajaxStr = ajaxStr.replace(/\"([\w]+)-([\w]+)\"/g, "\"$1$2\"");
于 2013-07-17T19:37:29.987 回答