程序员在编写应用程序的时候往往要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上

以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化"(Deserialization)。

.NET存在几种默认提供的序列化,二进制序列化,xml和json序列化会序列化所有的实例共有属性。

本文主要介绍json序列化。由于数据实体类型较多,我们使用泛型,大大的提高了代码的质量。

引用空间:System.Runtime.Serialization.Json;

public readonly static SerializeHelper Instance = new SerializeHelper();

        /// <summary>
/// 将C#数据实体转化为JSON数据
/// </summary>
/// <param name="obj">要转化的数据实体</param>
/// <returns>JSON格式字符串</returns>
public string JsonSerialize<T>(T obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
stream.Position = ; StreamReader sr = new StreamReader(stream);
string resultStr = sr.ReadToEnd();
sr.Close();
stream.Close(); return resultStr;
} /// <summary>
/// 将JSON数据转化为C#数据实体
/// </summary>
/// <param name="json">符合JSON格式的字符串</param>
/// <returns>T类型的对象</returns>
public T JsonDeserialize<T>(string json)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json.ToCharArray()));
T obj = (T)serializer.ReadObject(ms);
ms.Close(); return obj;
}

最新文章

  1. GDUFE-OJ 1070上班打卡 ^位运算
  2. 关于Java中的基本数据类型转换
  3. tomcat虚拟目录映射网络共享目录
  4. Fort.js – 时尚、现代的表单填写进度提示效果
  5. 图层的核心动画(CABaseAnimation)
  6. ligerui_ligerTree_003_配置url参数,加载“树”
  7. AlphaToCoverage solution
  8. WPF中的多点触摸事件
  9. 记一次 Google 面试经历
  10. java基础知识(二)
  11. WindowsAPI一日一练
  12. centos安装svn
  13. 初学Java Web(4)——Servlet学习总结
  14. springboot的@CrossOrigin注解解决细粒度的配置跨域
  15. 【转】python模块导入细节
  16. WPF程序 双击exe自动申请“以管理员方式运行”权限
  17. 【刷题】BZOJ 2134 单选错位
  18. 【漏洞预警】Apache ActiveMQ Fileserver远程代码执行漏洞(CVE-2016-3088)
  19. vue 报错 Cannot read property &#39;__ob__&#39; of undefined的解决方法
  20. navicat for mysql 快捷键

热门文章

  1. 实验三——NFS服务器配置
  2. Fortify Audit Workbench 笔记 SQL Injection SQL注入
  3. Latex数学符号对应表
  4. C#的关键字Explicit 和 Implicit
  5. Hadoop集群搭建(五)~搭建集群
  6. Iconfont-阿里巴巴矢量图标库 登录账户是 github自动登录
  7. EPX-Studio调用Dll模块
  8. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[上篇]
  9. Android开发:通过 webview 将网页打包成安卓应用
  10. STL篇--list容器