Json.Net学习笔记

官方网站:http://james.newtonking.com/json

Json.Net是.net环境下操作json数据的首选工具,速度快,操作简单,一般简单的操作,一看就会了

实验一:一个待序列化类中哪些属性会被json化?

public class ClassA

{

    private string s;

    public ClassA()

    {

        s = "10";

    }

}



ClassA a = new ClassA();

string str = JsonConvert.SerializeObject(a);

Console.WriteLine(str);



//输出: {}
public class ClassA

{

    public string s;

    public ClassA()

    {

        s = "10";

    }

}



ClassA a = new ClassA();

string str = JsonConvert.SerializeObject(a);

Console.WriteLine(str);



//输出:{"s":"10"}
public class ClassA

{

    private string s;

    public string S { get { return s; } }

    public ClassA()

    {

        s = "10";

    }

}



ClassA a = new ClassA();

string str = JsonConvert.SerializeObject(a);

Console.WriteLine(str);



//输出: {"S":"10"}

结论一:所有public的属性和变量都会被Json化

实验二:若存在类的继承关系,序列化时是否能识别到子类?

public class ClassA

{

    public string S { get { return "10"; } }

}

public class ClassB:ClassA

{

    public string S2 { get { return "20"; } }

}



ClassA a = new ClassB();

string str = JsonConvert.SerializeObject(a);

Console.WriteLine(str);



//输出:{"S2":"20","S":"10"}
List<ClassA> list = new List<ClassA>();

list.Add(new ClassA());

list.Add(new ClassB());

string str = JsonConvert.SerializeObject(list);

Console.WriteLine(str);



//输出: [{"S":"10"},{"S2":"20","S":"10"}]

结论二:当存在继承时,json化时选择使用子类

 

...我写给以后的自己看的

 

你可能感兴趣的:(.net)