zoukankan      html  css  js  c++  java
  • 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化时选择使用子类

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

  • 相关阅读:
    gitlab安装笔记二_Centos7配置163yum源
    gitlab安装笔记一_虚拟机中安装Centos7
    初篇:我与Linux
    Redis分布式锁正确的实现方法
    MacOS从零开始搭建hexo博客
    docker服务编排--docker-compose
    多线程问题整理
    maven依赖范围
    linux打开文件数 too many open files 解决办法
    【数据结构】队列-数组模拟队列
  • 原文地址:https://www.cnblogs.com/william7neral/p/3988080.html
Copyright © 2011-2022 走看看