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

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

  1. string json =
  2. @"{'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. 1   JavaScriptSerializer jsSerializer=new JavaScriptSerializer();
  2. 2  JsonData jd = jsSerializer.Deserialize<JsonData>(json);
  3. 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中是[]形式,数组

  1. string json =
  2. @"{'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[].created_at+jd.status[].text));

项目应用:

json字符串:

  1. {
  2. "depart_id": ,
  3. "depart_name": "人事部",
  4. "depart_source": "[{\"text\": \"\", \"type\": \"text\"},{\"text\": \"\", \"type\": \"image\"},{\"text\": \"\", \"type\": \"audio\"}]",
  5. "staff": {
  6. "name": "谭琳",
  7. "title": "部门经理",
  8. "image": "/2015/1/13/d2e2e3f2c2f8_2e4f5b.jpg",
  9. "id":
  10. }
  11. }

创建类:

  1. public class DepatData
  2. {
  3. public int depart_id = ;
  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[]["text"];
  9. string type = depart_source[]["type"];
  10. .......

C#解析Json格式数据小结的更多相关文章

  1. 解析json格式数据

    实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...

  2. 实现android上解析Json格式数据功能

    实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...

  3. 用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  4. $Java-json系列(一):用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  5. ObjectMapper用于将java对象转换为json格式数据以及JSONObject对象解析json格式数据

    ObjectMapper objectMapper = new ObjectMapper(); //反序列化的时候如果多了其他属性,不抛出异常 objectMapper.configure(Deser ...

  6. C# 解析JSON格式数据

    JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可 ...

  7. Android 解析JSON格式数据

    比起XML,JSON主要优势在于它的体积更小,在网络上传输的时候可以更省流量.但缺点在于,它的语义性较差,显示不如XML直观. JSON格式 :  { "name_A" : &qu ...

  8. 【转】C# 解析JSON格式数据

    http://blog.csdn.net/coolszy/article/details/8606803 JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量 ...

  9. Android中解析JSON格式数据常见方法合集

    待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...

随机推荐

  1. 实现一个跨平台的mysock库(windows、linux)

     源码下载 1.首先确定自己的操作系统为32位还是64位: root@bfq:~/mysock# uname -a Linux bfq 3.11.0-26-generic#45~precise1- ...

  2. as 中的反射 describeType

    describeType函数在adobe官方在线文档上的定义如下:生成描述ActionScript对象(命令为方法的参数)的XML对象,此方法实现ActionScript语言的反射编程概念. 这个方法 ...

  3. XtraBackup原理3

    http://mysql.taobao.org/monthly/2016/03/07/ MySQL · 物理备份 · Percona XtraBackup 备份原理 前言 Percona XtraBa ...

  4. gradle使用小记

    1.全局排除依赖: allprojects {    apply plugin: 'java'    apply plugin: 'eclipse'    apply plugin: 'maven-p ...

  5. JDK 7u60 版本发布下载安装

    JDK 7u60 版本发布了,主要改进包括: JavaFX 更新到 2.2.60 Java Mission Control(JMC)更新到 5.3 如果你在一个早期版本的Java中禁用了过期检查功能, ...

  6. 浅谈C/C++中的static和extern关键字 转

    原文:http://developer.51cto.com/art/201104/256820.htm static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.extern, &quo ...

  7. 使用mii-tool设置网卡速率

    转载:http://washion2008.blog.163.com/blog/static/144227201001711537158/ 在ubuntu中,mii-tool 是属于net-tools ...

  8. eclipse 的小技巧

    1. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧.它可以列出当前类中的所有方法及属性,你只需输入你想要 ...

  9. Android防微信首页左右滑动切换

    大家看到微信首页切换效果有没有觉得很炫,滑动切换,点击底部bar瞬间切换,滑动切换渐变效果,线上效果图: 之前也在博客上看到别人的实现,再次基础上,我做了些优化.首先说下实现原理,大神略过,o(╯□╰ ...

  10. CSS skills: 4) goto page head script

    //返回顶部 $(document).on('click', '.backTop', function (e) { $('html, body').animate({scrollTop: 0}, 50 ...