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);
}

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐