C# 序列化容器 Xml Json

本文详细介绍了C#中如何使用Xml和Json进行数据序列化,探讨了两者之间的优缺点,包括序列化和反序列化的实现步骤,以及在实际项目中的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  //序列化
    [XmlRoot("SimpleClass")]
    public class SimpleSerilzedClass
    { 
        [XmlElement("我的名")]
        public string Name { get; set; }
        [XmlElement("我的ID")]
        public int ID { get; set; }


        public SimpleSerilzedClass(string Name, int id)
        {
            this.Name = Name;
            this.ID = id;
        }
        public SimpleSerilzedClass()
        {
          
        }
    }

 
    class Program
    {

        static void Main(string[] args)
        {
            SimpleSerilzedClass sc = new SimpleSerilzedClass("xiaozhang", 12);

            List<SimpleSerilzedClass> lsc = new List<SimpleSerilzedClass>() { new SimpleSerilzedClass("xiaowang",12),new SimpleSerilzedClass("xiaoqiang",223)};


            XmlSerializer serializer = new XmlSerializer(typeof(List<SimpleSerilzedClass>),new XmlRootAttribute("我的类"));
            FileStream file = System.IO.File.Create("sc.xml");
            serializer.Serialize(file, lsc);
            file.Close();

            FileStream file1 = System.IO.File.OpenRead("sc.xml");
            var i =  serializer.Deserialize(file1) as List<SimpleSerilzedClass>;
            Console.WriteLine(i.GetType().ToString());


            foreach (var tt in i)
                Console.WriteLine(tt.Name);

            file1.Close();
        }
    }
     


在这里插入图片描述

 
using Newtonsoft.Json;

namespace ConsoleApp1
{
    //序列化
    public class SimpleSerilzedClass
    {
 
        public string Name { get; set; }
 
        public int ID { get; set; }


        public SimpleSerilzedClass(string Name, int id)
        {
            this.Name = Name;
            this.ID = id;
        }
        public SimpleSerilzedClass()
        {

        }
    }


    class Program
    {

        static void Main(string[] args)
        {
            SimpleSerilzedClass sc = new SimpleSerilzedClass("xiaozhang", 12);

            List<SimpleSerilzedClass> lsc = new List<SimpleSerilzedClass>() { new SimpleSerilzedClass("xiaowang", 12), new SimpleSerilzedClass("xiaoqiang", 223) };

            string jsondata = JsonConvert.SerializeObject(lsc);

            StreamWriter sw = new StreamWriter("sc.json",false);// 没有文件会自动创建,false 为重写,true 为追加
            sw.Write(jsondata);
            sw.Close();
          
            Console.WriteLine("Serialized Successfully");
      


            StreamReader sr = new StreamReader("sc.json", Encoding.UTF8);
            string s = sr.ReadToEnd();
            var i = JsonConvert.DeserializeObject<List<SimpleSerilzedClass>>(s) ;
            foreach (var tt in i)
                Console.WriteLine(tt.Name);
            sr.Close();


        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值