首页新闻找找看学习计划

这样的json如何解析到控件上,暂时用的winform做的。

0
悬赏园豆:20 [已解决问题] 解决于 2014-04-08 17:00

{"status":200,"message":"OK","data":{"province":"江苏","city":"常州","areaCode":"0519","postCode":"213000","corp":"中国移动","card":null}}

 

------json格式是这样的,这是公共的api;

http://api.36wu.com/Mobile/GetMobileOwnership?mobile=13858159254

我的目的是这样的,把解析出来的json附值到左边的控件上,怎么做呢,我知道用json反序列化,但定义了不对。这个怎么定义如何办?下面是我的获得的json的代码,提供方便下:

private static string GetStringByUrl(string strUrl)
{
//与指定URL创建HTTP请求
WebRequest wrt = WebRequest.Create(strUrl);
//获取对应HTTP请求的响应
WebResponse wrse = wrt.GetResponse();
//获取响应流
Stream strM = wrse.GetResponseStream();
//对接响应流(以"GBK"字符集)
StreamReader SR = new StreamReader(strM, Encoding.GetEncoding("UTF-8"));
//获取响应流的全部字符串
string strallstrm = SR.ReadToEnd();
//关闭读取流
SR.Close();

//返回网页html代码
return strallstrm;
}

renshen4322的主页 renshen4322 | 初学一级 | 园豆:5
提问于:2014-04-08 14:40
< >
分享
最佳答案
0

Newtonsoft.Json    

  public class Moblie
    {
        public string status { get; set; }
        public string message { get; set; }
        public Info data = new Info();

      
    }

    public class Info
    {
        public string province { get; set; }
        public string city { get; set; }
        public string areaCode { get; set; }
        public string postCode { get; set; }
        public string corp { get; set; }
        public string card { get; set; }
    }
  string str="[{\"status\":200,\"message\":\"OK\",\"data\":{\"province\":\"浙江\",\"city\":\"杭州\",\"areaCode\":\"0571\",\"postCode\":\"310000\",\"corp\":\"中国移动\",\"card\":null}}]";   
List<Moblie> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Moblie>>(str);

list就是要取得的信息

收获园豆:20
天真浪浪 | 小虾三级 |园豆:950 | 2014-04-08 16:30

Moblie result = JsonConvert.DeserializeObject<Moblie>(json);
txtProvince.Text = result.data.province;
txtPostCode.Text = Convert.ToString(result.data.postCode);
txtAreaCode.Text = Convert.ToString(result.data.areaCode);
txtCity.Text = result.data.city;
txtCard.Text = result.data.card;
txtMobile.Text = txtm.Text.Trim();

后面应该这样写,你定义对了,但后面你说的不对

renshen4322 | 园豆:5 (初学一级) | 2014-04-08 16:43

@renshen4322: - -!无语!!!

天真浪浪 | 园豆:950 (小虾三级) | 2014-04-08 17:12
其他回答(4)
0

不是已经有比较成熟的json序列化及反序列化的工具吗?System.Net.Json.dll

lucika.zh | 园豆:57 (初学一级) | 2014-04-08 15:15
0

用Newtonsoft.Json解析,这个比较好用

Aiolos丶M | 园豆:162 (初学一级) | 2014-04-08 15:53
0

反序列化一下,将json字符串转成对象使用。

json反序列化推荐使用楼上说的Json.NET(Newtonsoft.Json),nuget安装下就可以使用。

李宝亨 | 园豆:1433 (小虾三级) | 2014-04-08 16:05
0

Moblie result = JsonConvert.DeserializeObject<Moblie>(json);
txtProvince.Text = result.data.province;
txtPostCode.Text = Convert.ToString(result.data.postCode);
txtAreaCode.Text = Convert.ToString(result.data.areaCode);
txtCity.Text = result.data.city;
txtCard.Text = result.data.card;
txtMobile.Text = txtm.Text.Trim();

后面应该这样写,楼上你定义对了,但后面你说的不对

renshen4322 | 园豆:5 (初学一级) | 2014-04-08 17:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册