访问java脚本属性

时间:2016-07-12 16:01:17

标签: javascript ajax jsp

我正在尝试访问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

1 个答案:

答案 0 :(得分:0)

它们之间的区别在于硬代码工作版本没有使用字符串。您正在将对象分配给tempdata,而在第一个版本中,您使用var tempdata = Stringify(ListJSON);我假设返回JSON.stringify(ListJSON)

您希望使用对象,而不是字符串

尝试

$.getJSON('/home/address/city.html', { zipcode: zipcode }, function(ListJSON) {

     alert(ListJSON["items"][0]["city"]);