C#解析Json格式数据小结
最近,遇到了一些不同的Json格式的数据,需要做不同处理才能转化为想要得到的结果,这里总结一下。
第一种形式:status中是{}形式,对象
- string json =
- @"{'name':'Tom','province':'32','city':'1','location':'江苏 南京','status':{'created_at':'Thu Feb 26 21:04:34 +0800 2015','text':'哈哈'}}";
针对以上格式的数据,创建如下的两个结构体或类
- public struct Status
- {
- public string created_at { get; set; }
- public string text { get; set; }
- }
- public struct JsonData
- {
- public string name { get; set; }
- public string province { get; set; }
- public string city { get; set; }
- public string location { get; set; }
- public Status status;
- }
输出结果:
- 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':'哈哈'}]}";
针对以上格式的数据,创建如下的两个结构体或类
- public struct Status
- {
- public string created_at { get; set; }
- public string text { get; set; }
- }
- public struct JsonData2
- {
- public string name { get; set; }
- public string province { get; set; }
- public string city { get; set; }
- public string location { get; set; }
- public List<Status> status;
- }
输出结果
- JavaScriptSerializer jsSerializer=new JavaScriptSerializer();
- JsonData2 jd = jsSerializer.Deserialize<JsonData2>(json);
- 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字符串:
- {
- "depart_id": ,
- "depart_name": "人事部",
- "depart_source": "[{\"text\": \"\", \"type\": \"text\"},{\"text\": \"\", \"type\": \"image\"},{\"text\": \"\", \"type\": \"audio\"}]",
- "staff": {
- "name": "谭琳",
- "title": "部门经理",
- "image": "/2015/1/13/d2e2e3f2c2f8_2e4f5b.jpg",
- "id":
- }
- }
创建类:
- public class DepatData
- {
- public int depart_id = ;
- public string depart_name = "";
- public string depart_source = "";
- public StaffData staff =new StaffData();
- public class StaffData
- {
- public string name = "";
- public string title = "";
- public string image = "";
- public string id = "";
- }
- }
解析Json数据:
- DepatData d = JsonConvert.DeserializeObject<DepatData>(strJson);
- List<Dictionary<string, string>> depart_source =
- JsonConvert.DeserializeObject < List<Dictionary<string, string>>>(d.depart_source);
- //获取值
- int depart_id = d.depart_id;
- .......
- string text = depart_source[]["text"];
- string type = depart_source[]["type"];
- .......
C#解析Json格式数据小结的更多相关文章
- 解析json格式数据
实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...
- 实现android上解析Json格式数据功能
实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...
- 用GSON解析Json格式数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
- $Java-json系列(一):用GSON解析Json格式数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
- ObjectMapper用于将java对象转换为json格式数据以及JSONObject对象解析json格式数据
ObjectMapper objectMapper = new ObjectMapper(); //反序列化的时候如果多了其他属性,不抛出异常 objectMapper.configure(Deser ...
- C# 解析JSON格式数据
JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可 ...
- Android 解析JSON格式数据
比起XML,JSON主要优势在于它的体积更小,在网络上传输的时候可以更省流量.但缺点在于,它的语义性较差,显示不如XML直观. JSON格式 : { "name_A" : &qu ...
- 【转】C# 解析JSON格式数据
http://blog.csdn.net/coolszy/article/details/8606803 JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量 ...
- Android中解析JSON格式数据常见方法合集
待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...
随机推荐
- 实现一个跨平台的mysock库(windows、linux)
源码下载 1.首先确定自己的操作系统为32位还是64位: root@bfq:~/mysock# uname -a Linux bfq 3.11.0-26-generic#45~precise1- ...
- as 中的反射 describeType
describeType函数在adobe官方在线文档上的定义如下:生成描述ActionScript对象(命令为方法的参数)的XML对象,此方法实现ActionScript语言的反射编程概念. 这个方法 ...
- XtraBackup原理3
http://mysql.taobao.org/monthly/2016/03/07/ MySQL · 物理备份 · Percona XtraBackup 备份原理 前言 Percona XtraBa ...
- gradle使用小记
1.全局排除依赖: allprojects { apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'maven-p ...
- JDK 7u60 版本发布下载安装
JDK 7u60 版本发布了,主要改进包括: JavaFX 更新到 2.2.60 Java Mission Control(JMC)更新到 5.3 如果你在一个早期版本的Java中禁用了过期检查功能, ...
- 浅谈C/C++中的static和extern关键字 转
原文:http://developer.51cto.com/art/201104/256820.htm static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.extern, &quo ...
- 使用mii-tool设置网卡速率
转载:http://washion2008.blog.163.com/blog/static/144227201001711537158/ 在ubuntu中,mii-tool 是属于net-tools ...
- eclipse 的小技巧
1. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧.它可以列出当前类中的所有方法及属性,你只需输入你想要 ...
- Android防微信首页左右滑动切换
大家看到微信首页切换效果有没有觉得很炫,滑动切换,点击底部bar瞬间切换,滑动切换渐变效果,线上效果图: 之前也在博客上看到别人的实现,再次基础上,我做了些优化.首先说下实现原理,大神略过,o(╯□╰ ...
- CSS skills: 4) goto page head script
//返回顶部 $(document).on('click', '.backTop', function (e) { $('html, body').animate({scrollTop: 0}, 50 ...