Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 372|回复: 0

[默认分类] C# JSON字符串序列化与反序列化(转)

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-13 14:55:58 | 显示全部楼层 |阅读模式


       
      
       
      
       
       
       C# JSON字符串序列化与反序列化
      
      
      
       
       
       
      
      
      
      C#将对象序列化成JSON字符串
       
       
        public string GetJsonString()   
        {   
            List<Product> products = new List<Product>(){   
            new Product(){Name="苹果",Price=5.5},   
            new Product(){Name="橘子",Price=2.5},   
            new Product(){Name="干柿子",Price=16.00}   
            };   
            ProductList productlist = new ProductList();   
            productlist.GetProducts = products;   
            return new javaScriptSerializer().Serialize(productlist));   
        }   
          
        public class Product   
        {   
            public string Name { get; set; }   
            public double Price { get; set; }   
        }   
          
        public class ProductList   
        {   
            public List<Product> GetProducts { get; set; }   
        }  
       
       
      这里主要是使用JavaScriptSerializer来实现序列化操作,这样我们就可以把对象转换成Json格式的字符串,生成的结果如下:
       
       
        {"GetProducts":[{"Name":"苹果","Price":5.5},{"Name":"橘子","Price":2.5},{"Name":"柿子","Price":16}]}  
       
       
       
      如何将Json字符串转换成对象使用呢?
      在实际开发中,经常有可能遇到用JS传递一个Json格式的字符串到后台使用,如果能自动将字符串转换成想要的对象,那进行遍历或其他操作时,就方便多了。那具体是如何实现的呢?
       
       
        public static List<T> JSONStringToList<T>(this string JsonStr)   
        {   
            JavaScriptSerializer Serializer = new JavaScriptSerializer();   
            List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);   
            return objs;   
        }   
          
        public static T Deserialize<T>(string json)   
        {   
            T obj = Activator.CreateInstance<T>();   
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))   
            {   
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());   
                return (T)serializer.ReadObject(ms);   
            }   
        }   
          
        string JsonStr = "[{Name:"苹果",Price:5.5},{Name:"橘子",Price:2.5},{Name:"柿子",Price:16}]";   
        List<Product> products = new List<Product>();   
        products = JSONStringToList<Product>(JsonStr);   
          
        foreach (var item in products)   
        {   
            Response.Write(item.Name + ":" + item.Price + "<br />");   
        }   
          
        public class Product   
        {   
            public string Name { get; set; }   
            public double Price { get; set; }   
        }  
       
       
      在上面的例子中,可以很方便的将Json字符串转换成List对象,操作的时候就方便多了~

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-3-29 13:21 , Processed in 0.336716 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表