0

如何从 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>,以向访问者显示有关位置的一些信息。

4

2 回答 2

1

如果您只想加载该 JSON 对象并访问“城市”字段,请使用 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 请求不跨域名。

于 2013-09-16T15:28:23.747 回答
0
var response={
 "address":"8.8.8.8",
 "country":"US",
 "stateprov":"California",
 "city":"Mountain View"
};
$("#city").val(response.city);
于 2013-09-16T15:25:10.103 回答