C# JSON字符串序列化与反序列化

C#将对象序列化成JSON字符串

  1. public string GetJsonString()
  2. {
  3. List<Product> products = new List<Product>(){
  4. new Product(){Name="苹果",Price=5.5},
  5. new Product(){Name="橘子",Price=2.5},
  6. new Product(){Name="干柿子",Price=16.00}
  7. };
  8. ProductList productlist = new ProductList();
  9. productlist.GetProducts = products;
  10. return new JavaScriptSerializer().Serialize(productlist));
  11. }
  12. public class Product
  13. {
  14. public string Name { get; set; }
  15. public double Price { get; set; }
  16. }
  17. public class ProductList
  18. {
  19. public List<Product> GetProducts { get; set; }
  20. }

这里主要是使用JavaScriptSerializer来实现序列化操作,这样我们就可以把对象转换成Json格式的字符串,生成的结果如下:

  1. {"GetProducts":[{"Name":"苹果","Price":5.5},{"Name":"橘子","Price":2.5},{"Name":"柿子","Price":16}]}

如何将Json字符串转换成对象使用呢?

在实际开发中,经常有可能遇到用JS传递一个Json格式的字符串到后台使用,如果能自动将字符串转换成想要的对象,那进行遍历或其他操作时,就方便多了。那具体是如何实现的呢?

  1. public static List<T> JSONStringToList<T>(this string JsonStr)
  2. {
  3. JavaScriptSerializer Serializer = new JavaScriptSerializer();
  4. List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
  5. return objs;
  6. }
  7. public static T Deserialize<T>(string json)
  8. {
  9. T obj = Activator.CreateInstance<T>();
  10. using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
  11. {
  12. DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
  13. return (T)serializer.ReadObject(ms);
  14. }
  15. }
  16. string JsonStr = "[{Name:'苹果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]";
  17. List<Product> products = new List<Product>();
  18. products = JSONStringToList<Product>(JsonStr);
  19. foreach (var item in products)
  20. {
  21. Response.Write(item.Name + ":" + item.Price + "<br />");
  22. }
  23. public class Product
  24. {
  25. public string Name { get; set; }
  26. public double Price { get; set; }
  27. }

在上面的例子中,可以很方便的将Json字符串转换成List对象,操作的时候就方便多了~

转载于:https://www.cnblogs.com/dwfbenben/archive/2013/06/06/3122662.html

C# JSON字符串序列化与反序列化(转)相关推荐

  1. [参考]C# JSON字符串序列化与反序列化

    C#将对象序列化成JSON字符串 public string GetJsonString() { List<Product> products = new List<Product& ...

  2. 在C#中,Json的序列化和反序列化的几种方式总结

    在C#中,Json的序列化和反序列化的几种方式总结 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据,以及如何反序列化Json数据到对象. 什么是JSON? JSON (Ja ...

  3. ASP.NET中JSON的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  4. Newtonsoft.Json 的序列化与反序列化

    首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化. 创建 ...

  5. Json.Net系列教程 3.Json.Net序列化和反序列化设置

    上节补充 首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列 ...

  6. java newtonsoft.json_Newtonsoft.Json 的序列化与反序列化

    首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化. 创建 ...

  7. 一起谈.NET技术,ASP.NET 中JSON 的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  8. C#中的Json的序列化和反序列化

    Json是一种通用的数据格式,我们在数据交换的时候,经常会用到,下面介绍c#中的json序列化和反序列化,当然也可用在asp.net,silverlight,wpf中.我们在下面实例讲解如何进行Jso ...

  9. 使用`NewtonSoft.Json`的序列化与反序列化

    使用NewtonSoft.Json的序列化与反序列化 public static class JsonHelper {/// <summary>/// 实体对象转JSON字符串/// &l ...

最新文章

  1. 算法笔记-判断链表保存的字符串是否是回文
  2. kubernetes-Deployment
  3. iOS中下载大型文件的原理解析二
  4. Java Fork / Join进行并行编程
  5. Non-parseable POM C:\Users\admin\.m2\repository\org\springframework问题解决方案
  6. jQuery系列:Ajax
  7. SQL:pgsql中查询一段时间内数据及相关时间操作
  8. 从零开始学设计模式(五)——原型模式(Prototype Pattern)
  9. python -- 连接 orclae cx_Oracle的使用
  10. 航空订票系统php,C++版数据结构航空订票系统源代码.doc
  11. python数独解题器_python-2.7 – 数独生成器
  12. java实现模拟多道程序设计
  13. UEFI+GPT双硬盘安装Win10+Ubuntu16.04双系统
  14. 我要曝光!CDN 省钱大法!
  15. 简单批处理文件使用win7自带wifi,妈妈再也不担心WiFi软件不稳定了
  16. FTP服务器传输文件
  17. 手机拍照要注意光线问题
  18. 浅谈PHP设计模式的门面模式
  19. NFS网络文件系统的共享
  20. 微信公众号页面跳转APP或小程序遇到的问题

热门文章

  1. Ax=0的非零解/马尔可夫链的平稳分布
  2. 以中断方法设计单片机秒、分脉冲发生器
  3. C++ map 遍历
  4. 判定覆盖 与 条件覆盖 的区别
  5. SEO优化:自建站图片优化攻略
  6. 线性子空间和仿射子空间
  7. android监听耳机,Android监听耳机按键事件
  8. python和汇编_python – 你对这些汇编助记符有什么建议吗?
  9. 折腾了一把 JAX-WS, SOA Java EE 5 (part 1 of 3)
  10. Unity 3D-- 摄像机Clear Flags和Culling Mask属性用途详解