本文由 比特飞 原创发布,欢迎大家踊跃转载。

转载请注明本文地址:C#开发笔记之19-如何用C#实现优雅的Json解析(序列化/反序列化)方案? | .Net中文网

C#开发笔记概述

另外可参考文章:C#开发笔记之21-C#解析Json(序列化/反序列化)的最佳实践。

概述

本案例向大家展示如何使用C#实现优雅的Json解析(序列化/反序列化)方案,内含深克隆基类。

解释

[Serializable]
public abstract class SerializableBase<T> : DepthClone<T> {protected static T FromJson(string json) {return JsonConvert.DeserializeObject<T>(json);}protected virtual string ToJson() {return JsonConvert.SerializeObject(this, Formatting.None);}}

泛型的序列化基类 SerializableBase,包含 FromJson 和 ToJson 方法(需要引用NewtonJson包)。

public class DepthClone<T> {public virtual T Clone() {var memory = new MemoryStream();var formatter = new BinaryFormatter();formatter.Serialize(memory, this);memory.Position = 0;return (T)formatter.Deserialize(memory);}}

深克隆基类 DepthClone,继承的子类直接使用 .Clone() 即可进行深克隆。

本文由 比特飞 原创发布,欢迎大家踊跃转载。

转载请注明本文地址:C#开发笔记之19-如何用C#实现优雅的Json解析(序列化/反序列化)方案? | .Net中文网

C#开发笔记之19-如何用C#实现优雅的Json解析(序列化/反序列化)方案?相关推荐

  1. C#开发笔记之21-C#解析Json(序列化/反序列化)的最佳实践。

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#开发笔记之21-C#解析Json(序列化/反序列化)的最佳实践. | .Net中文网. C#开发笔记概述 另外可参考文章:C#开发 ...

  2. C#开发笔记,点点细微,处处真情,记录开发中的痛点

    该文章的最新版本已迁移至个人博客[比特飞],单击链接 C#开发笔记,点点细微,处处真情,记录开发中的痛点 | .Net中文网 访问. 概述 本系列文章将会向大家介绍本人实际开发过程中所遇到技术点和心得 ...

  3. C#开发笔记,点点细微,处处真情,记录开发中的难言之隐

    该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/956 访问. 概述 本系列文章将会向大家介绍本人实际开发过程中所遇到技术 ...

  4. Android开发笔记(序)写在前面的目录

    知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入 ...

  5. Android开发笔记(序)

    本开发笔记,借鉴与其他开发者整理的文章范例与心得体会.在这里作为开发过程中的一个总结与笔记式记录. 如有侵犯作者权益,请及时联系告知删除.俗话说:集百家成一言,去粕成金. ************** ...

  6. Android开发笔记(序)写在前面的目录大全

    转自  湖前琴亭 的博客https://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面 ...

  7. unity 通过resouce加载图片_Unity游戏开发笔记-资源管理之资源加载

    资源加载是游戏中非常重要也非常繁琐的的一部分,不合理的资源管理,必定回给游戏的内存带来非常大的压力,尤其是一些重度游戏,不但资源特别多,引用关系特别复杂.维护一个不会内存泄漏而且加载效率高的资源加载框 ...

  8. Andriod开发之二十:Android开发笔记(序)写在前面的目录

    https://blog.csdn.net/aqi00/article/details/50038385 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教 ...

  9. C#开发笔记之09-如何用C#判断社会信用代码是否合法?

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#开发笔记之09-如何用C#判断社会信用代码是否合法? | .Net中文网. C#开发笔记概述 概述 法人和其他组织统一社会信用代码 ...

最新文章

  1. 自己动手做一个小Linux-2
  2. 【转】深入探讨 Android 传感器
  3. 【转】使用C#发送Http 请求实现模拟登陆(以博客园为例)
  4. 数据结构和算法之单链表
  5. 【视频讲解】基础实验4-2.1 树的同构 (25 分)
  6. [Golang] 用interface{}实现泛型出现的问题
  7. project下查看那些文件夹是空的
  8. Docker原理之UnionFS
  9. 使用php下载网络图片有哪些方法,php下载网络图片常用的三个方法总结
  10. 手机应用软件测试经验总结
  11. 初步认识泊松重建(比较全的综合教程)
  12. 第 15 章 代理模式
  13. Process v3.5发布了!调节中介分析利器 SPSS process macro 插件
  14. Coin3D三维可视化教程8
  15. PR 多轨道字幕设置
  16. 用时序模型预测明天的股票价格
  17. 一款易用的视频云是如何迅速积累客户的?
  18. 一般mysql的客户端用什么软件_mysql一般用什么管理工具?
  19. MindMapper中的分支格式怎样进行修改
  20. 怎么让笔记本合上后显示屏不灭

热门文章

  1. windows和Linux利用Python快速搭建一个网站
  2. 【AI视野·今日CV 计算机视觉论文速览 第216期】Wed, 9 Jun 2021
  3. 【今日CV 计算机视觉论文速览】Mon, 4 Mar 2019
  4. 常量的定义与使用 1006 c#
  5. 爬虫-14-利用代理爬取数据
  6. django-模型类中的数据类型-添加中
  7. css-transform-案例-翻转牌效果
  8. Sql Server发布订阅如何添加新表如何不初始化整个快照
  9. OGG ORA-1403 NO DATA FOUND
  10. Confluence 6 CSS 指南:修改顶部背景