首页 新闻 赞助 找找看

求这个JSON的反序列化:

0
悬赏园豆:10 [已关闭问题] 解决于 2012-05-26 11:55

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":"",为空值 的关系,如何解决?求各种方法。

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2012-05-25 22:38
< >
分享
其他回答(2)
0

你试着把COUNTRY的值使用纯英文看结果如何?

从这个现象来看,似乎是UNICODE编码的问题。\uxxxx是UNICODE的一种编码方式。估计跟这个有关系。

假如用英文通过了,那么把汉字直接写进去,不进行UNICODE编码,看是否能通过,我想应该这样没问题的。

无之无 | 园豆:5095 (大侠五级) | 2012-05-25 23:16
0

你可以尝试使用正则配置到相关的值,也可以尝试判断值是否为空,如果为空则填上一个特殊字符,然后反序列化

喵喵喵猫 | 园豆:1742 (小虾三级) | 2012-05-25 23:20
0

你可以封装一个类来获取相关数据

pstune | 园豆:239 (菜鸟二级) | 2012-05-26 09:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册