C#匿名类型和动态解析减少定义传输类模板

  C#作为强类型语言,在序列化和反序列化(json)场景中对字符串解析常常需要定义强类型模板,造成编码上的繁琐。其实可以使用匿名类型和动态解析减少json序列化时候的数据模板定义;

 

            string a = "1";
            bool b = true;
            double c = 123;
            var d = new { a, b, c };
            var o = new { a, b ,c,d};
            var s = JsonConvert.SerializeObject(o);
            Console.WriteLine(s);

            dynamic o2 = JsonConvert.DeserializeObject(s);

            string a1 = o2.a;
            bool b1 = Convert.ToBoolean(o2.b);
            double c1 = Convert.ToDouble(o2.c);
            string a2 = o2.d.a;

            Console.WriteLine(a1);
            Console.WriteLine(b1);
            Console.WriteLine(c1);
            Console.WriteLine(a2);

  

posted @ 2018-10-30 10:08  SuperSimpleCode  阅读(290)  评论(0编辑  收藏  举报