Newtonsoft.Json,是.Net中开源的Json序列化和反序列化工具,官方地址:https://www.newtonsoft.com/json
具体使用:
1. 右键项目=>Nuget包管理=>添加 Newtonsoft.Json
2. 引入命名空间
//数据类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
public class SchoolData
{
public string Name = "";
public List<Student> StudentList { get; set; }
}
//示例
private void Button_Click(object sender, RoutedEventArgs e)
{
Student stu = new Student() { Name = "小明",Age = 18};
string json = JsonConvert.SerializeObject(stu);//序列化
Student stu2 = JsonConvert.DeserializeObject<Student>(json);//反序列化
List<Student> stuList = new List<Student>();
stuList.Add(new Student() { Name = "小明", Age = 18 });
stuList.Add(new Student() { Name = "小红", Age = 19 });
string json1 = JsonConvert.SerializeObject(stuList);
List<Student> stuList2 = JsonConvert.DeserializeObject<List<Student>>(json1);
SchoolData sch = new SchoolData();
sch.Name = "xx初中";
sch.StudentList = new List<Student>();
sch.StudentList.Add(new Student() { Name = "小明", Age = 18 });
sch.StudentList.Add(new Student() { Name = "小红", Age = 19 });
string json2 = JsonConvert.SerializeObject(sch);
SchoolData sch2 = JsonConvert.DeserializeObject<SchoolData>(json2);
//测试我当前版本.net 4.6 Newtonsoft.Json 12.0.0.0
//可以把小写字段名称或者同名但是大小写不一样 自动识别转换
string strJson = "{\"name\":\"小明\",\"age\":18}";
Student s1 = JsonConvert.DeserializeObject<Student>(strJson);
string strJson = "{\"NAME\":\"小明\",\"AGE\":18}";
Student s1 = JsonConvert.DeserializeObject<Student>(strJson);
}