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/Raywang80s/p/7096152.html

[参考]C# JSON字符串序列化与反序列化相关推荐

  1. C# JSON字符串序列化与反序列化(转)

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

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

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

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

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

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

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

  5. 数据传输:json格式序列化与反序列化(将类转化为json格式与将json格式转化为类)

    数据传输:json格式序列化与反序列化(将类转化为json格式与将json格式转化为类) 在最近的实验中,使用了json来传送客户端与服务端的信息,之前原本想使用自己定义的格式,但是使用json可以将 ...

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

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

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

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

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

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

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

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

最新文章

  1. SHARED POOL 原理
  2. Java知识点总结(JDBC-封装JDBC)
  3. [Android1.5]DigitalClock自定义日期输出格式
  4. 操作系统原理 : 非连续的内存分配,分段,页表
  5. 大学计算机无线论文范文大全,大学计算机论文范文
  6. adb 的原理以及它总重启等问题详解
  7. @RequestParam的作用
  8. 新鲜出炉!大规模神经网络最新综述!
  9. IOProcess基础知识
  10. 博文视点大讲堂35期《Google Android创赢路线与产品开发实战》读者见面会
  11. 4k电视色彩表现测试软件,选高端4K电视 4K测试图帮你轻松分辨
  12. 应用密码学:协议、算法与C源程序(学习第一章)
  13. winform之修改图标
  14. Ubuntu16.04安装steam
  15. Linux下安装google浏览器
  16. Win7下SQLite安装配置与使用方法详解
  17. selenium中的三种等待方式以及显示等待和隐式等待区别
  18. 美国宾州计算机学校,美国宾州有什么好大学
  19. 一份来自数据森麟的2018年终总结
  20. [WinForm]写一个小程序把指定目录的程序添加到开机自动启动(无法绕过360检查)

热门文章

  1. Java导出word 图片重复
  2. 不能打开到主机的连接,在端口1521:连接失败的解决方法(修改远程桌面连接端口)
  3. 电商系统开发实战-用户微服务基础模块开发
  4. cglib BeanCopier 使用
  5. 堆排序算法(java实现)
  6. 基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)
  7. 编程计算1!+2!+3!+…+N!
  8. 在线教育项目技术笔记1
  9. java基础--面向对象三大特性(二)
  10. 实验1 系统响应及系统稳定性