使用jQuery从json url解析变量

时间:2013-09-16 15:13:14

标签: java javascript jquery json parsing

如何从json解析像“city”这样的参数?

我有这样的网址:http://api.db-ip.com/addrinfo?addr=8.8.8.8&api_key=key,这让我回答:

{
    "address":"8.8.8.8",
    "country":"US",
    "stateprov":"California",
    "city":"Mountain View"
}

我想将城市(或国家/地区)变量应用于<input type>,以向访问者展示有关位置的一些信息。

2 个答案:

答案 0 :(得分:1)

如果您只想加载该JSON对象并访问“city”字段,请使用jQuery的getJSON方法获取本机JS对象作为响应。

$.getJSON( "http://api.db-ip.com/addrinfo?addr=8.8.8.8&api_key=key", function(data) {
   // do something with data.city;
});

但是,在您的情况下,您正在尝试制作跨域JSON请求 - 不允许。由于db-ip.com不允许,因此您必须使用PHP代理请求。

在您的服务器上设置“dbip.php”作为代理(参见http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html

然后你只需从你自己的服务器上的dbip.php加载JSON,它会为你查询db-ip.com。浏览器很高兴,因为它所做的AJAX请求不会跨域名。

答案 1 :(得分:0)

var response={
 "address":"8.8.8.8",
 "country":"US",
 "stateprov":"California",
 "city":"Mountain View"
};
$("#city").val(response.city);