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对象,操作的时候就方便多了~

最新文章

  1. ubuntu安装py27 spyder
  2. html5开发制作,漂亮html5模板欣赏,H5网站建设
  3. hnu10104
  4. 【基础知识】.Net基础加强08天
  5. 转:Teach Yourself Programming in Ten Years——用十年教会自己编程
  6. (转)Yale CAS + .net Client 实现 SSO(5)
  7. JVM系列三:JVM参数设置、分析(转载)
  8. 用css3写出来的进度条
  9. Swift中共有74个内建函数
  10. ZOJ 3490 String Successor 字符串处理
  11. 基于visual Studio2013解决面试题之1007鸡蛋和篮子
  12. Android一些解决方案内存问题(一)
  13. 使用EOLINKER做接口测试最佳路径(上)
  14. iOS XIB使用中适配iPhoneX的安全区域、调用UiView动画
  15. idea 里自动下载私服jar一直不能下载下来
  16. 使用rvm安装与切换Ruby
  17. 弄懂JDK、JRE和JVM到底是什么 关系区别
  18. python 引用和对象理解(转)
  19. VS2010 C++环境下DLL和LIB文件的生成与调试
  20. 在wepy里面使用redux

热门文章

  1. iTerm2 + oh my zsh +agnoster 打造最强Mac终端
  2. coursera-斯坦福-机器学习-吴恩达-笔记week2
  3. java项目改为web项目
  4. 互联网创业公司如何防御 DDoS 攻击?采用CDN服务
  5. seajs引入jquery框架问题
  6. 使用selenium爬取网站动态数据
  7. Spring boot JPA 用自定义主键策略 生成自定义主键ID
  8. C++程序设计-面向对象
  9. 初始化 CSS 样式
  10. Coprime Sequence (HDU 6025)前缀和与后缀和的应用