C#中json字符串的序列化和反序列化

时间:2022-06-07 03:29:28

       Json【javascript东西暗示要领】,

       它是一个轻量级的数据交换格局,我们可以很简单的来读取和写它,

       并且它很容易被计算机转化和生成,它是完全独立于语言的。

Json撑持下面两种数据布局:

键值对的调集--各类差此外编程语言,都撑持这种数据布局;

有序的列表类型值的调集--这此中包罗数组,调集,矢量,或者序列,等等。

Json有下面几种表示形式:

     1.东西

           一个没有挨次的“键/值”,一个东西以花括号“{”开始,并以花括号"}"结束,

在每一个“键”的后面,有一个冒号,并且使用逗号来分隔断绝分手多个键值对。

例如:var user = {"name":"Manas","gender":"Male","birthday":"1987-8-8"}   

     2.数组

           设置值的挨次,一个数组以中括号"["开始,并以中括号"]"结束,

并且所有的值使用逗号分隔断绝分手,

例如:

var userlist = [

{"user":{"name":"Manas","gender":"Male","birthday":"1987-8-8"}}, 
                                           {"user":{"name":"Mohapatra","Male":"Female","birthday":"1987-7-7"}}

]

     3.字符串

            任意数量的Unicode字符,,使用引号做符号,并使用反斜杠来分隔断绝分手。

(注意: 引号  逗号  冒号  均为英文状态下半角标记, 且只能是双引号 )

例如: var userlist = "{\"ID\":1,\"Name\":\"Manas\",\"Address\":\"India\"}" 

C#中具体如何使用:           

           在C#中我们经常使用下面的工具来解析Json格局的内容

            Newtonsoft.Json,是.Net中开源的Json序列化和反序列化工具,官方地点:。

具体使用:

1. 右键项目=>Nuget承打点=>添加  Newtonsoft.Json

2. 引入定名空间

1 using Newtonsoft.Json;

3. 界说类

public class Student { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } }

4. 序列化和反序列化实体东西

//序列化东西 Student one = new Student() { ID = 1, Name = "武松", Age = 250, Sex = "" }; //序列化 string jsonData = JsonConvert.SerializeObject(one); Console.WriteLine(jsonData); //显示功效 Console.ReadLine(); //反序列化东西 string str = "{\"ID\":2,\"Name\":\"鲁智深\",\"Age\":230,\"Sex\":\"男\"}";
//反序列化 Student two = JsonConvert.DeserializeObject<Student>(str); Console.WriteLine( string.Format("学生信息 ID:{0},姓名:{1},春秋:{2},性别:{3}", two.ID,two.Name, two.Age,two.Sex));//显示功效 Console.ReadLine();

输出功效:

5. 序列化实体东西调集