json转换帮助类

复制代码
    /// <summary>
    /// json转换帮助类
    /// </summary>
    public static class JsonHelper
    {
        /*
         
        实例:

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");

            JArray jarr = new JArray();

            JObject now = new JObject();
            now.Add("id", 100);
            now.Add("name", "关羽");
            now.Add("date", "2020-07-21 15:05:21");
            jarr.Add(now);

            now = new JObject();
            now.Add("id", 101);
            now.Add("name", "张飞");
            now.Add("date", "2020-07-21 15:06:21");
            jarr.Add(now);

            obj.Add("data", jarr);

            TestClass test = JsonHelper.ToObject<TestClass>(obj.ToString());
            string json = test.ToJson("yyyy-MM-dd HH:mm:ss");
            JObject testClass = JsonHelper.ToJObject(obj.ToString());




        public class TestClass
        {
            public int code { set; get; }
            public string msg { set; get; }
            public List<dataClass> data { set; get; }

            public class dataClass
            {
                public string id { set; get; }

                public string name { set; get; }

                public DateTime date { set; get; }
            }
        }


        */


        /// <summary>
        /// 字符串是否为空
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static bool IsNotEmpty(this string value)
        {
            return string.IsNullOrWhiteSpace(value) == false;
        }

        /// <summary>
        /// model对象转为json字符串
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string ToJson(this object obj)
        {
            return obj == null ? null : JsonConvert.SerializeObject(obj);
        }

        /// <summary>
        /// model对象转为json字符串
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="datetimeformats">时间格式,如:yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss</param>
        /// <returns></returns>
        public static string ToJson(this object obj, string datetimeformats)
        {
            var timeConverter = new IsoDateTimeConverter { DateTimeFormat = datetimeformats };
            return JsonConvert.SerializeObject(obj, timeConverter);
        }

        /// <summary>
        /// json字符串转为model对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Json"></param>
        /// <returns></returns>
        public static T ToObject<T>(this string Json)
        {
            try
            {
                return Json.IsNotEmpty() == false ? default(T) : JsonConvert.DeserializeObject<T>(Json);
            }
            catch (Exception ex)
            {
                return default(T);
            }

        }

        /// <summary>
        /// json字符串转为泛型集合
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Json"></param>
        /// <returns></returns>
        public static List<T> ToList<T>(this string Json)
        {
            return Json == null ? null : JsonConvert.DeserializeObject<List<T>>(Json);
        }

        /// <summary>
        /// json字符串转为DataTable表格
        /// </summary>
        /// <param name="Json"></param>
        /// <returns></returns>
        public static DataTable ToTable(this string Json)
        {
            return Json == null ? null : JsonConvert.DeserializeObject<DataTable>(Json);
        }

        /// <summary>
        /// json字符串转为json对象
        /// </summary>
        /// <param name="Json"></param>
        /// <returns></returns>
        public static JObject ToJObject(this string Json)
        {
            return Json == null ? JObject.Parse("{}") : JObject.Parse(Json.Replace("&nbsp;", ""));
        }
    }
复制代码

 

posted @   妖狐鬼魅  阅读(160)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
历史上的今天:
2017-07-21 JS实现html元素中存JSON数据
2017-07-21 XMLHelper
点击右上角即可分享
微信分享提示