我正在尝试在Javascript中解析JSON。 JSON创建为ajax响应:
$.ajax(url, {
dataType: "text",
success: function(rawData, status, xhr) {
var data;
try {
data = $.parseJSON(rawData);
var counter = data.counter;
for(var i=1; i<=counter; i++){
//since the number of 'testPath' elements in the JSON depend on the 'counter' variable, I am parsing it in this way
//counter has the correct integer value and loops runs fine
var currCounter = 'testPath'+i ;
alert(data.currCounter); // everything alerts as undefined
}
} catch(err) {
alert(err);
}
},
error: function(xhr, status, err) {
alert(err);
}
});
但所有值都警告'undefined'为值(除了'counter',它给出了正确的值)在firebug中看到的实际字符串如下:
{"testPath1":"ab/csd/sasa", "testPath2":"asa/fdfd/ghfgfg", "testPath3":"ssdsd/sdsd/sds", "counter":3}
答案 0 :(得分:14)
alert(data[currCounter])
,这会有效。
当data.currCounter
在对象中查找键'currCounter`,而不是currCounter的值。
示例:
var myObj = { 'name':'dhruv','age':28 };
var theKey = 'age';
alert(myObj.theKey); // undefined
alert(myObj[theKey]); // 28
答案 1 :(得分:3)
使用
alert(data[currCounter]);
代替。你不能像你那样访问一个属性....
答案 2 :(得分:2)
需要使用[]
表示法
data[currCounter]
答案 3 :(得分:1)
尝试数据[currCounter],因为data.currCount中没有值。