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);
        }
    }

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

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

 

 

 

 

代码已上交,

不说了。溜

 

posted @ 2021-02-26 15:30  王月半子  阅读(249)  评论(0编辑  收藏  举报