首页 > 编程语言 >C# 序列化与非序列化

C# 序列化与非序列化

时间:2023-01-05 15:47:20浏览次数:56  
标签:Customer Console string C# strJson 与非 JavaScriptSerializer 序列化 public

2023.1.5

 

JavaScriptSerializer

参考实体类:Customer

public class Customer
{
   public int Unid { get; set; }
   public string CustomerName { get; set; }
}

(一)反序列化,用于将对象转换为 JSON 字符串

public string ScriptSerialize(Customer customer)
{
  JavaScriptSerializer js = new JavaScriptSerializer();
  return js.Serialize(customer);
}
Customer cc = new Customer { Unid = 1, CustomerName = "John" };
string strJson = ScriptSerialize(cc);
Console.WriteLine(strJson);

(二)反序列化,将JSON 字符串转换为对象

public Customer ScriptDeserialize(string strJson)
{
    JavaScriptSerializer js = new JavaScriptSerializer();
    return js.Deserialize<Customer>(strJson);
}
Customer c1 = ScriptDeserialize(strJson);
Console.WriteLine(c1.Unid + " " + c1.CustomerName);

(三)方法泛型

public string ScriptSerialize<T>(T t)
{
    JavaScriptSerializer js = new JavaScriptSerializer();
    return js.Serialize(t);
}

public T ScriptDeserialize<T>(string strJson)
{
    JavaScriptSerializer js = new JavaScriptSerializer();
    return js.Deserialize<T>(strJson);
}
Customer cc = new Customer { Unid = 1, CustomerName = "John" };
string strJson = ScriptSerialize<Customer>(cc);
Console.WriteLine(strJson);
Customer c1 = ScriptDeserialize<Customer>(strJson);
Console.WriteLine(c1.Unid + " " + c1.CustomerName);

JsonConvert

public class Person
    {
        /// <summary>
        /// 名称
        /// </summary>
        public string pName;

        /// <summary>
        /// 年龄
        /// </summary>
        public int pAge;

        /// <summary>
        /// 性别
        /// </summary>
        public string pSex;
    }
  // 声明一个Person对象,并赋值
            Person p1 = new Person();
            p1.pName = "张三";
            p1.pAge = 18;
            p1.pSex = "男";

            // 输出类型
            Console.WriteLine("输出p1类型:{0}" + "\n",p1.GetType());

            //  转换成JSON字符串
            var str = JsonConvert.SerializeObject(p1);
            Console.WriteLine("输出转换后的值:{0}" + "\n" + "转换后的类型:{1} " + "\n", str,str.GetType());

            // 使用反序列化到指定Person类型
            var pStr = JsonConvert.DeserializeObject<Person>(str);
            Console.WriteLine("接受后的Name:{0}" + "\n" + "反序列后的类型:{1} " + "\n", pStr.pName, pStr.GetType());

            Console.ReadKey();

 

标签:Customer,Console,string,C#,strJson,与非,JavaScriptSerializer,序列化,public
From: https://www.cnblogs.com/kezhang/p/17027748.html

相关文章

  • netcore 使用apollo
    一、创建配置应用    ①、创建应用     ②、填写应用信息     ③、删除默认命名空间     ④、新增命名空间      ......
  • 脱模剂 chem trend | 假日消耗品也离不开肯天脱模剂的帮忙
    时光静好,与君语;细水长流,与君同;繁华落尽,与君老。每一个节假日礼物那是必不可少的,关于礼物清单,小肯教授都替你们准备好了!当然,这些礼物的背后都有肯天的功劳哦!为什么这么说呢?......
  • instanceof
    /****instanceof练习案例*/@TestpublicvoidtestInstanceOf(){Stringuser="xiaoqiang";//user相当于正方形instanceof是不是......
  • VC.dll相关及其C#交互
    方法步骤:1.新建工程:  如果需要MFC的支持,可以选择MFCAppWizard(dll)工程类型,如果不需要,可以选择Win32(dll).2.编写内部代码:  该部分过程与建立一般的exe文件大同小异,在此......
  • C# Windows 窗体的.Net 框架绘图技术
     当编写一个典型的Windows窗体​​程序​​时,窗体和控件的绘制、效果等操作是不需要特别加以考虑的。这是为什么呢?因为通过使用​​.Net​​本文针对那些Windows窗......
  • 代码随想录day8 LeetCode 344 反转字符串 541反转字符串II 剑指 Offer 05. 替换空格
    344反转字符串https://leetcode.cn/problems/reverse-string/双指针classSolution{public:voidreverseString(vector<char>&s){intleft=0;intri......
  • Apache Tomcat的安装与测试
    为了unity的webgl发布和测试,我安装了tomcat。距离上一次使用Tomcat还是很久很久以前的事情了。简单记录一下吧。我发现webgl的发布问题超级多,尤其是2020版本的。看来接下来......
  • 前端调试工具(ionic)
    一、调试工具介绍1、firefox插件WebDeveloper1.1.6(最新版本,中文版)主要用于html、css、js的查看和编辑;推荐指数:Firefox上开发和调试web站点的不二之选。Webdeveloper......
  • 脱模剂 chem trend | 肯天脱模剂品牌大揭秘!
    我们都知道每家公司旗下都有众多优秀的品牌,品牌是人们对一个企业及其产品售后服务、文化价值的一种评价和认知它是一种信任。肯天当然也不例外,我们众多品牌只有一个共同的目......
  • 【AGC】在云调试删除应用无法再安装问题
    问题背景:俄罗斯cp反馈在AGC平台使用云调试功能出现了问题。复现步骤:安装应用程序->卸载应用程序(长按“删除”按钮)->再次尝试安装。之后收到信息:安装成功。但无论如何......