• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#解析Json格式数据小结

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近,遇到了一些不同的Json格式的数据,需要做不同处理才能转化为想要得到的结果,这里总结一下。

第一种形式:status中是{}形式,对象

string json =
                 @"{'name':'Tom','province':'32','city':'1','location':'江苏 南京','status':{'created_at':'Thu Feb 26 21:04:34 +0800 2015','text':'哈哈'}}";

针对以上格式的数据,创建如下的两个结构体或类

 1     public struct Status
 2     {
 3         public string created_at { get; set; }
 4         public string text { get; set; }
 5     }
 6 
 7     public struct JsonData
 8     {
 9         public string name { get; set; }
10         public string province { get; set; }
11         public string city { get; set; }
12         public string location { get; set; }
13         public Status status;
14     }

输出结果:

1   JavaScriptSerializer jsSerializer=new JavaScriptSerializer();
2    JsonData jd = jsSerializer.Deserialize<JsonData>(json);
3    Response.Write(string.Format("name={0};province={1};city={2};location={3};status={4};",jd.name,jd.province,jd.city,jd.location,jd.status.created_at+jd.status.text));

 

第二种形式:status中是[]形式,数组

string json =
                @"{'name':'Tom','province':'32','city':'1','location':'江苏 南京','status':[{'created_at':'Thu Feb 26 21:04:34 +0800 2015','text':'哈哈'}]}";

针对以上格式的数据,创建如下的两个结构体或类

 1   public struct Status
 2     {
 3         public string created_at { get; set; }
 4         public string text { get; set; }
 5     }
 6     public struct JsonData2
 7     {
 8         public string name { get; set; }
 9         public string province { get; set; }
10         public string city { get; set; }
11         public string location { get; set; }
12         public List<Status> status;
13     }

输出结果

1      JavaScriptSerializer jsSerializer=new JavaScriptSerializer();
2      JsonData2 jd = jsSerializer.Deserialize<JsonData2>(json);
3      Response.Write(string.Format("name={0};province={1};city={2};location={3};status={4};",jd.name,jd.province,jd.city,jd.location,jd.status[0].created_at+jd.status[0].text));

 

 

项目应用:

json字符串:

    {
    "depart_id": 5,
    "depart_name": "人事部",
    "depart_source": "[{\"text\": \"\", \"type\": \"text\"},{\"text\": \"\", \"type\": \"image\"},{\"text\": \"\", \"type\": \"audio\"}]",
    "staff": {
        "name": "谭琳",
        "title": "部门经理",
        "image": "/2015/1/13/d2e2e3f2c2f8_2e4f5b.jpg",
        "id": 143375468
        }
     }

创建类:

 1 public class DepatData
 2 {
 3     public int depart_id = 0;
 4     public string depart_name = "";
 5     public string depart_source = "";
 6     public StaffData staff =new StaffData();
 7 
 8     public class StaffData
 9     {
10         public string name = "";
11         public string title = "";
12         public string image = "";
13         public string id = "";
14     }
15 }

解析Json数据:

 1         DepatData d = JsonConvert.DeserializeObject<DepatData>(strJson);
 2         List<Dictionary<string, string>> depart_source =
 3             JsonConvert.DeserializeObject < List<Dictionary<string, string>>>(d.depart_source);
 4         
 5         //获取值
 6         int depart_id = d.depart_id;
 7         .......
 8         string text = depart_source[0]["text"];
 9         string type = depart_source[0]["type"];
10         .......

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
(11)C#之ADO.NET初始三层架构的DAL层发布时间:2022-07-13
下一篇:
C#智能注释的换行问题发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap