我试图从下面的 json 中获取 subdivisions.names.en,但不断收到“TypeError:location.subdivisions.names 未定义”错误。我确信这很简单,可能只是需要更多的 sleep ;)
我可以获得我需要的其他信息 - 这有效:
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
}
],
}
最佳答案
"subdivisions": [ ...
表示该变量是一个对象数组。您需要索引正确的条目:
alert(location.subdivisions[0].names.en);
请注意,不得有任何条目
“分割”:[],...
而且很多,所以必须对索引进行一些逻辑/检查。
location.subdivisions.length
可能有帮助
关于javascript - 如何从json中提取特定信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32554422/