我正在尝试访问ajax响应返回的javascript对象的属性。但它说“无法读取未定义的属性'0'”。但是,如果我在变量中硬编码同一个对象并读取,我就可以访问它。
//抛出“无法读取.........”错误的代码
$.get('/home/address/city.html', { zipcode: zipcode }, function(ListJSON) {
var tempdata = Stringify(ListJSON);
alert(tempdata);
alert(tempdata["items"][0]["city"]);
这为第一个警报和第二个警报抛出错误提供输出。 alert(tempdata)的输出;
{"identifier":"branch","label":"name","items":{"0":{"name":"1234 ABCD AVE ","branch":"555 ", "city":"BLR "}}}
//工作代码
$.get('/home/address/city.html', { zipcode: zipcode }, function(ListJSON) {
var tempdata = {"identifier":"branch","label":"name","items":{"0":{"name":"1234 ABCD AVE ","branch":"555 ", "city":"BLR "}}};
alert(tempdata);
alert(tempdata["items"][0]["city"]);
输出第一个警报
{"identifier":"branch","label":"name","items":{"0":{"name":"1234 ABCD AVE ","branch":"555 ", "city":"BLR "}}}
输出第二次警报
BLR
答案 0 :(得分:0)
它们之间的区别在于硬代码工作版本没有使用字符串。您正在将对象分配给tempdata
,而在第一个版本中,您使用var tempdata = Stringify(ListJSON);
我假设返回JSON.stringify(ListJSON)
您希望使用对象,而不是字符串
尝试
$.getJSON('/home/address/city.html', { zipcode: zipcode }, function(ListJSON) {
alert(ListJSON["items"][0]["city"]);