首页 > 代码库 > Json.Net学习笔记

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化时选择使用子类

 

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

 

Json.Net学习笔记