从网址[Google](http://ipinfo.io)获取国家/地区名称和地区

时间:2015-10-02 05:56:22

标签: c# asp.net json

我有url,它返回一个json字符串,结果是:

{
    "ip": "202.141.243.124",
    "hostname": "No Hostname",
    "city": "Peshawar",
    "region": "Khyber Pakhtunkhwa",
    "country": "PK",
    "loc": "34.0080,71.5785",
    "org": "AS9260 Multinet Pakistan Pvt. Ltd.",
    "postal": "24650"
}

我想要国名和州。我怎么才能得到它? 帮助我们,请帮我解决一下代码。

2 个答案:

答案 0 :(得分:2)

您需要从NuGet

安装Json.Net
PM> Install-Package Newtonsoft.Json

然后试试这个......

void Main()
{
    const string testJson = "{ \"ip\": \"202.141.243.124\", \"hostname\": \"No Hostname\", \"city\": \"Peshawar\", \"region" +
    "\": \"Khyber Pakhtunkhwa\", \"country\": \"PK\", \"loc\": \"34.0080,71.5785\", \"org\": \"AS92" +
    "60 Multinet Pakistan Pvt. Ltd.\", \"postal\": \"24650\" }";

    IpInfo ipInfo = JsonConvert.DeserializeObject<IpInfo>(testJson);

}


public class IpInfo
{

    [JsonProperty("ip")]
    public string Ip { get; set; }

    [JsonProperty("hostname")]
    public string Hostname { get; set; }

    [JsonProperty("city")]
    public string City { get; set; }

    [JsonProperty("region")]
    public string Region { get; set; }

    [JsonProperty("country")]
    public string Country { get; set; }

    [JsonProperty("loc")]
    public string Loc { get; set; }

    [JsonProperty("org")]
    public string Org { get; set; }

    [JsonProperty("postal")]
    public string Postal { get; set; }
}

结果

Result

提示

您可以生成复制您尝试反序列化的JSON文档结构所需的类,在此示例中,它是生成的IpInfo类。

您可以通过以下两种方式之一完成此操作:一种是使用Json2CSharp并将JSON数据粘贴到那里以生成类,或者您可以下载Xamasoft JSON Class Generator(我喜欢和使用的那种)回答你的问题)。

答案 1 :(得分:0)

您可以使用Json.Net反序列化为JObject,然后获取regioncountry值。