JSON数据:
{"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"86","area":"\u534e\u4e1c","area_id":"300000","region":"\u6d59\u6c5f\u7701","region_id":"330000","city":"\u5b81\u6ce2\u5e02","city_id":"330200","county":"","county_id":"-1","isp":"\u7535\u4fe1","isp_id":"100017","ip":"125.111.226.165"}}
其中code为0表示成功,1表示失败。
我在这个地方搞不定:就是"county":"",",这里的value是 空 其实是所有value都有可能为 空
我目前 使用的代码:
class Program
{
staticvoid Main(string[] args)
{
var getIpInfoUrl ="http://ip.taobao.com/service/getIpInfo.php?ip={0}";
getIpInfoUrl =string.Format(getIpInfoUrl, "125.111.226.165");
var client =new WebClient();
var result = client.DownloadString(getIpInfoUrl);
var ipInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<IpInfo>(result);
foreach (var key in ipInfo.data.Keys)
Console.WriteLine("{0}:{1}", key, ipInfo.data[key]);
Console.Read();
}
}
publicclass IpInfo
{
publicstring code;
public Hashtable data;
}
在 var ipInfo 这里会报错,就是"county":"",为空值 的关系,如何解决?求各种方法。
你试着把COUNTRY的值使用纯英文看结果如何?
从这个现象来看,似乎是UNICODE编码的问题。\uxxxx是UNICODE的一种编码方式。估计跟这个有关系。
假如用英文通过了,那么把汉字直接写进去,不进行UNICODE编码,看是否能通过,我想应该这样没问题的。
你可以尝试使用正则配置到相关的值,也可以尝试判断值是否为空,如果为空则填上一个特殊字符,然后反序列化
你可以封装一个类来获取相关数据