所以,我正在获取JSON数据,我将其保存到变量中,并且是一个数组。
var my_data
$.getJSON('http://ipinfo.io/geo', function(data){
my_data = data;
console.log(my_data);
});
在控制台中我有这个:
Object {
city: "Krasnoyarsk",
country: "RU",
ip: "212.119.233.96",
loc: "56.0184,92.8672",
postal: "660000",
region: "Krasnoyarskiy Kray"
}
但我从这个数组中唯一需要的就是这个城市的名字。我尝试了以下方法:
var my_city = my_data.filter(function (filt) {
return filt.city;});
但这似乎不起作用。
所以,我的问题是:我是否正在尝试以正确的方式做到这一点并且有些事情是不对的或者这个代码是完全错误的吗?
答案 0 :(得分:0)
返回的对象是一个对象,它不是数组。所以这里没有必要使用.filter
。只是做
console.log(my_data.city);
答案 1 :(得分:0)
您只需使用Object
,就可以访问dot-notation
的属性:
var myCity = my_data.city;
这仅适用于满足变量命名规则的属性,这意味着{ "street-and-city": '...' }
之类的内容无法使用dot-notation
进行访问。你必须像这样访问这些属性:
var myStreetAndCity = my_data["street-and-city"];
答案 2 :(得分:0)
谢谢大家!现在我意识到我走得太深了
var my_data
$.getJSON('http://ipinfo.io/geo', function(data){
my_data = data;
console.log(my_data.city);
});
var my_city = my_data.city;
工作正常