C# 如何将数据序列化到本地 数组 对象 等等

本文介绍了一种使用JavaScriptSerializer进行JSON数据生成的方法,并演示了如何通过.NET Framework将JSON序列化为二进制文件存储于本地,以及如何从本地反序列化数据并将其转换回对象。

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

1、将需要保存的数据生成json

添加引用: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Extensions.dll

生成json:

 public string ToJSON(object obj)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            return serializer.Serialize(obj);
        }

2、将json序列化到本地,即可防止他人偷窥数据

 string fileName = AssemblyOperations.GetAssemblyPath + "\\UserFormula.bat";
            Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
            try
            {
                BinaryFormatter binFormat = new BinaryFormatter();//创建二进制序列化器
                binFormat.Serialize(fStream, data);
            }
            catch (Exception)
            {

            }
            finally
            {
                fStream.Close();
                fStream.Dispose();
            }

3、反序列化,即读取

Stream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
                try
                {
                    IFormatter binFormat = new BinaryFormatter();//创建二进制序列化器
                    binFormat.Binder = new SBinder();
                    string jsonStr=binFormat.Deserialize(fStream).ToString();
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    fStream.Close();
                    fStream.Dispose();
                }
4、将json生成对象

 JavaScriptSerializer Serializer = new JavaScriptSerializer();
                    List<T> objs = Serializer.Deserialize<List<T>>(jsonStr);

public class SBinder : SerializationBinder
    {
        public override Type BindToType(string assemblyName, string typeName)
        {
            Assembly ass = Assembly.GetExecutingAssembly();
            return ass.GetType(typeName);
        }
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值