1. //json序列化和反序列化 using System.Runtime.Serialization.Json;
  2. public static string JsonSerializer<T>(T t)
  3. {
  4. DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
  5. MemoryStream ms = new MemoryStream();
  6. ser.WriteObject(ms, t);
  7. string jsonString = Encoding.UTF8.GetString(ms.ToArray());
  8. ms.Close();
  9. //替换Json的Date字符串
  10. string p = @"\\/Date\((\d+)\+\d+\)\\/";
  11. MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
  12. Regex reg = new Regex(p);
  13. jsonString = reg.Replace(jsonString,matchEvaluator);
  14. return jsonString;
  15. }
  16.  
  17. //反序列化
  18. public static T JsonDeserialize<T>(string jsonString)
  19. {
  20. //将"yyyy-MM-dd HH:mm:ss"格式的字符串转为"\/Date(1294499956278+0800)\/"格式 string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
  21. string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
  22. MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
  23. Regex reg = new Regex(p);
  24. jsonString = reg.Replace(jsonString, matchEvaluator);
  25. DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
  26. MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
  27. T obj = (T)ser.ReadObject(ms);
  28. return obj;
  29. }
  30.  
  31. /// <summary>
  32. /// /// 将Json序列化的时间由/Date(1294499956278+0800)转为字符串
  33. /// /// </summary>
  34. ///
  35.  
  36. private static string ConvertJsonDateToDateString(Match m)
  37. {
  38. string result = string.Empty;
  39. DateTime dt = new DateTime(,,);
  40. dt = dt.AddMilliseconds(long.Parse(m.Groups[].Value));
  41. dt = dt.ToLocalTime();
  42. result = dt.ToString("yyyy-MM-dd HH:mm:ss");
  43. return result;
  44. }
  45. /// <summary>
  46. ///
  47. /// 将时间字符串转为Json时间
  48. /// /// </summary>
  49. ///
  50.  
  51. private static string ConvertDateStringToJsonDate(Match m)
  52. {
  53. string result = string.Empty;
  54. DateTime dt = DateTime.Parse(m.Groups[].Value);
  55. dt = dt.ToUniversalTime();
  56. TimeSpan ts = dt - DateTime.Parse("1970-01-01");
  57. result = string.Format("\\/Date({0}+0800)\\/",ts.TotalMilliseconds);
  58. return result;
  59. }
  60.  
  61. public class Person
  62. {
  63. public string Name { get; set; }
  64. public int Age { get; set; }
  65. public DateTime LastLoginTime { get; set; }
  66. }
  67.  
  68. //序列化
  69. Person p = new Person();
  70. p.Name = "张三";
  71. p.Age = ;
  72. p.LastLoginTime = DateTime.Now;
  73. string jsonString = JsonSerializer<Person>(p);
  74. Response.Write(jsonString);
  75. // 反序列化
  76. string json = "{\"Age\":28,\"LastLoginTime\":\"2011-01-09 00:30:00\",\"Name\":\"张三\"}";
  77. Person p = JsonDeserialize<Person>(json);
  78. Response.Write("姓名:" + p.Name + "</br>");
  79. Response.Write("年龄:" + p.Age+"</br>");
  80. Response.Write("时间:" + p.LastLoginTime);
  81.  
  82. List<Person>list=new List <Person>{
  83. new Person{Name="张三",Age=},
  84. new Person{Name="小白",Age=}
  85. };
  86.  
  87. string jsonString = JsonSerializer<List< Person>>(list);
  88. Response.Write(jsonString);
  89.  
  90. Dictionary<string,string>Dic=new Dictionary<string,string>();
  91. Dic.Add("Name", "");
  92. Dic.Add("Age","");
  93. string jsonString=JsonSerializer<Dictionary<string,string>>(Dic);
  94. Response.Write(jsonString);

asp.net json 与xml 的基础事例的更多相关文章

  1. ASP.NET Web API中的JSON和XML序列化

    ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok ...

  2. 【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化

    谨以此文感谢关注此系列文章的园友!前段时间本以为此系列文章已没多少人关注,而不打算继续下去了.因为文章贴出来之后,看的人似乎不多,也很少有人对这些文章发表评论,而且几乎无人给予“推荐”.但前几天有人询 ...

  3. Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET W ...

  4. iOS-数据持久化基础-JSON与XML数据解析

    解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...

  5. ASP.NET MVC 3.0 Controller基础

    ASP.NET MVC 3.0 Controller基础   1.Controller类与方法 Controller(控制器)是ASP.NET MVC的核心,负责处理浏览器请求,并作出响应.Cotro ...

  6. .NET Core采用的全新配置系统[6]: 深入了解三种针对文件(JSON、XML与INI)的配置源

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  7. JSON取代XML?--JSON入门指南

    定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C# ...

  8. 深入了解三种针对文件(JSON、XML与INI)的配置源

    深入了解三种针对文件(JSON.XML与INI)的配置源 物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonCon ...

  9. JSON-lib框架,转换JSON、XML不再困难

    Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象. 一. 准备工作 ...

随机推荐

  1. 在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

    看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you d ...

  2. HTML5基础知识(4)--white-space属性

    1.white-space 属性设置如何处理元素内的空白. 这个属性声明建立布局过程中如何处理元素中的空白符.值 pre-wrap 和 pre-line 是 CSS 2.1 中新增的. 默认值: no ...

  3. [转]js中的时间与毫秒数互相转换

    原文地址:http://blog.sina.com.cn/s/blog_77cb836301015icr.html [1]js毫秒时间转换成日期时间   var oldTime = (new Date ...

  4. Django- 1- 数据库设置

    更改配置文件中的 字段更改为 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', //按照自己的数据库配置配置,现在所配置 ...

  5. poj2631 树的直径

    设s-t是这棵树的直径,那么对于任意给予的一点,它能够到达的最远的点是s或者t. 这样我们可以通过2次bfs找到树的直径了. #include<cstdio> #include<qu ...

  6. Office 2013 Pro Plus Vol激活

    先确认自己是office2013 vol(大客户版),然后cmd(管理员)里面运行如下命令: cd "C:\Program Files\Microsoft Office\Office15&q ...

  7. C#-WinForm-打印控件

    打印控件 绘制如下窗体 一.PrintDocument -打印的基础  首先放置PrintDocument控件,双击事件PrintPage设置要打印的样式(李献策lxc) //第一步 设置打印属性 p ...

  8. C#—类库、委托、is和as运算符、泛型集合

    类库 类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.类库可以解决一系列常见编程任务(包括诸如字符串管理.数据收集.数据库连接以及文件访问 ...

  9. sublime text 如何设置”在浏览器浏览“的快捷键

    sublime text编辑器极其强大 ,但在刚开始用的时候,每次在浏览器中查看非得右键鼠标----”open in browser“,着实觉得麻烦....百度之,上面的方法有很多,但是根据我自己的经 ...

  10. 【USACO】Transformations(模拟)

    Transformations A square pattern of size N x N (1 <= N <= 10) black and white square tiles is ...