zoukankan      html  css  js  c++  java
  • C#封装Json的转换(扩展方法)

    哈喽大家好,今儿是元宵节。不知道多年后回来看,发现今天是元宵节会不会有感慨?

    Emmmm~   估计是会把这段删掉吧

    老规矩,今天来说一个封装Json转换的方法,从而变得更好用。

    Json我们都很熟悉,尤其在现在的前后端分离,友好交互中更是被大量使用。

    什么?你说还有XML,拖出去斩了,今天我们说的是Json

     正常的Json转换我们都很熟悉,但还是先来看一下。

     使用的时候需要写冗长一段,有点麻烦。

    如果只是单独写一两个可能还好,如果在项目中大量的被使用就写很麻烦。

    可能你在想?为什么会觉得麻烦?

    哈?我们程序员都“懒”嘛!!!

    那么先来看下改造后的效果,和改造前有什么不同!!

                IList<Test> lt = new List<Test>
                {
                    new Test
                    {
                        Name = "王月半子",
                        Age = 20,
                        Hometown = "北京"
                    },
                    new Test
                    {
                        Name = "李月半子",
                        Age = 25,
                        Hometown = "北京"
                    },
                    new Test
                    {
                        Name = "张月半子",
                        Age = 21,
                        Hometown = "北京"
                    },
                };
                //==========================Before======================
                string json = JsonConvert.SerializeObject(lt);
                IList<Test> afterConvert = JsonConvert.DeserializeObject<IList<Test>>(json);
    
                //==========================After======================
                string aJson = lt.ToJson();
                IList<Test> tt = aJson.ToObj<IList<Test>>();

    哎嘿,这样是不是就清爽很多了。

    然后我们就来看下怎么实现的吧,其实 很简单

    static class JsonHelper
        {
            public static string ToJson(this object obj)
            {
                if (obj == null)
                {
                    throw new ArgumentException("传入obj为空,无法继续处理请求返回!");
                }
                return JsonConvert.SerializeObject(obj);
            }
    
            public static T ToObj<T>(this string json)
            {
                if (string.IsNullOrEmpty(json))
                {
                    throw new ArgumentException("传入Json为空,无法继续处理请求返回!");
                }
                return JsonConvert.DeserializeObject<T>(json);
            }
        }

    嗯,我把他做成了一个扩展方法。然后勒,底层还是拿人家轮子在调用啦。啊哈哈哈。

    不过这样也写的爽了很多。

     

    代码已上交,

    不说了。溜

  • 相关阅读:
    01_垂直居中body中的应用
    C++基础知识易错点总结(2)
    辗转相除求最大公约数
    C++基础知识易错点总结(1)
    类对象的建立方式总结
    LeetCode(131)Palindrome Partitioning
    基本套接字编程(7) -- udp篇
    LeetCode(124) Binary Tree Maximum Path Sum
    LeetCode(115) Distinct Subsequences
    LeetCode(97) Interleaving String
  • 原文地址:https://www.cnblogs.com/SevenWang/p/14452550.html
Copyright © 2011-2022 走看看