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

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

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

     

    代码已上交,

    不说了。溜

  • 相关阅读:
    一个分页的HtmlHelper
    VS中卸载当前的EF版本命令
    一个指示合同到期的进度条(mvc+jquery)
    数组反转显示
    IndexOf的用法(查找一个字符出现的次数以及索引)
    ITK Read Dicom
    LBD线段描述子
    Learning Vim in 2014: Vim as Language
    vim Register 操作,拷贝至系统剪贴板等
    linux command
  • 原文地址:https://www.cnblogs.com/SevenWang/p/14452550.html
Copyright © 2020-2023  润新知