我正在尝试从下面的json获取subdivisions.names.en但是仍然遇到“TypeError:location.subdivisions.names is undefined”错误。我确信它简单而且简单只是需要更多的睡眠;)
我可以得到其他我需要的信息 - 这有效:
alert(location.city.names.en + ' ' + location.postal.code);
但这不是:
alert(location.subdivisions.names.en);
这是我的json:
{
"continent": {
"code": "OC",
"geoname_id": xxx,
"names": {
"fr": "Océanie",
"pt-BR": "Oceania",
"zh-CN": "大洋洲",
"es": "Oceanía",
"de": "Ozeanien",
"ja": "オセアニア",
"en": "Oceania",
"ru": "Океания"
}
},
"location": {
"longitude": xxxx,
"latitude": -xxxx,
"time_zone": "Australia/Melbourne"
},
"subdivisions":
[
{
"names": {
"ru": "Виктория",
"pt-BR": "Vitória",
"en": "Victoria"
},
"iso_code": "VIC",
"geoname_id": xxxx
}
],
}
答案 0 :(得分:3)
"subdivisions": [ ...
表示此变量是一个对象数组。您需要索引正确的条目:
alert(location.subdivisions[0].names.en);
请注意,一定不能有任何条目
"subdivisions": [], ...
以及其中很多,所以必须对索引进行一些逻辑/检查。
location.subdivisions.length
可能有帮助
答案 1 :(得分:2)
“subdivisions”被定义为json文件中的数组。根据目的,将其更改为哈希(删除方括号)或修改对
的访问权限alert(location.subdivisions[0].names.en);