Uncaught SyntaxError:尝试读取json数据时出现意外的数字

时间:2015-02-24 14:47:25

标签: javascript arrays json angularjs google-maps-api-3

我从google maps api中检索json,就像这样

$http.get("https://maps.googleapis.com/maps/api/geocode/json?address="+data.SimpleProfileForm.postcode+"&sensor=false")
                                    .success(function(data){
                                        console.log(data);
                                        user.location = data.results.0.address_components.3.long_name;
                                    })
                                    .error(function(data){
                                        console.log("there was an error with the postcode API");
                                        console.log(data);
                                    })

但是我在这一行得到错误的意外号码:

user.location = data.results.0.address_components.3.long_name;

如果我删除我得到的数字'无法读取属性“long_name”of undefined'。

我如何访问阵列中的数据?提前致谢, 克里斯

2 个答案:

答案 0 :(得分:4)

您不能使用点号表示索引数组。

您的代码行应该是:

user.location = data.results[0].address_components[3].long_name;

答案 1 :(得分:0)

在迭代JSON时,您无法直接引用#键。

ex:getJSONitem = parent.221.grandchild.0

为了解决这个问题,您可以通过索引将键作为字符串引用,因为JSON键都是字符串。

ex:getJSONitem = parent['221'].grandchild['0']

你没有来使它们成为字符串,但我认为它是更安全的做法,以防它们包含随机字符,如" / -_"那种......