zoukankan      html  css  js  c++  java
  • C#之JSON序列化与反序列化

    JSON的序列化和反序列化已经成为WEB开发不可缺少的知识。

    什么是JSON?
    JSON(JavaScript Object Notation) is a lightweight data-interchange format.It is easy for humans to read and write and easy for machines to parse and generate.JSON is a text format that is completely language independent.
    JSON(JavaScript对象标记法)是一种轻量级数据交换格式。它便于我们读写,也便于计算机生成与解析。JSON是一种完全独立于语言的文本格式。

    C#中序列化与反序列化的方式主要有
    JavaScriptSerializer(System.Web.Extensions System.Web.Script.Serialization)
    JsonConvert(Json.NET Newtonsoft.Json)

    下面分别举例说明两种方法的使用。

    创建一个Person类

    1         class Person
    2         {
    3             public string Name { get; set; }
    4             public int Age { get; set; }
    5             public Dictionary<string, object> WorkExperience { get; set; }
    6             public Person() { }
    7             public void Say(){ }
    8         }

    实例化Person

    1             var person = new Person();
    2             person.Name = "张三";
    3             person.Age = 27;
    4             person.WorkExperience = new Dictionary<string, object>();
    5             person.WorkExperience.Add("A公司", "A职位");
    6             person.WorkExperience.Add("B公司", "B职位");

    JsonConvert Demo

    1             var serializeObject1 = JsonConvert.SerializeObject(person);
    2             var deserializeObject1 = JsonConvert.DeserializeObject(serializeObject1);
    3             Console.WriteLine("使用JsonConvert序列化与反序列化");
    4             Console.WriteLine("序列化结果");
    5             Console.WriteLine(serializeObject1);
    6             Console.WriteLine("反序列化结果");
    7             Console.WriteLine(deserializeObject1);
    8             Console.WriteLine();

    JavaScriptSerializer Demo

    1             var serializeObject2 = new JavaScriptSerializer().Serialize(person);
    2             var deserializeObject2 = new JavaScriptSerializer().Deserialize<Person>(serializeObject2);
    3             Console.WriteLine("使用JavaScriptSerializer序列化与反序列化");
    4             Console.WriteLine("序列化结果");
    5             Console.WriteLine(serializeObject2);
    6             Console.WriteLine("反序列化结果");
    7             Console.WriteLine(deserializeObject2);
    8             Console.WriteLine("姓名:{0},年龄:{1}".FormatWith(deserializeObject2.Name, deserializeObject2.Age));

    好记性不如烂笔头,每天学习点,每天分享点,不忘初心...

  • 相关阅读:
    python开源项目
    Appscan 10用户安装手册
    20201201-k8s的node节点和独立nginx部署会冲突
    k8s-更换证书(apiserver新添加了VIP)
    20201224-修改pod网段(calico)
    深-宝的一梦
    洛谷-P3383 【模板】线性筛素数
    洛谷-P3913 车的攻击
    洛谷-P1866 编号
    洛谷-P1100 高低位交换
  • 原文地址:https://www.cnblogs.com/maiaimei/p/7281164.html
Copyright © 2011-2022 走看看