zoukankan      html  css  js  c++  java
  • JsonHelper类(c#对象与json互转)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
     
    namespace YY.SZYD.Shop.Common.Utils
    {
        public static class JsonHelper
        {
            private static JsonSerializerSettings _jsonSettings;
     
            static JsonHelper()
            {
                IsoDateTimeConverter datetimeConverter = new IsoDateTimeConverter();
                datetimeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
     
                _jsonSettings = new JsonSerializerSettings();
                _jsonSettings.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
                _jsonSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
                _jsonSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                _jsonSettings.Converters.Add(datetimeConverter);
            }
     
            /// <summary>
            /// 将指定的对象序列化成 JSON 数据。
            /// </summary>
            /// <param name="obj">要序列化的对象。</param>
            /// <returns></returns>
            public static string ToJson(this object obj)
            {
                try
                {
                    if (null == obj)
                        return null;
     
                    return JsonConvert.SerializeObject(obj, Formatting.None, _jsonSettings);
                }
                catch (Exception ex)
                {
                    Logging.LogManager.Error(new Logging.ExceptionLogInfo()
                    {
                        ExceptionClassName = "YY.SZYD.Shop.Common.Utils.JsonHelper",
                        ExceptionMethod = "ToJson",
                        ExceptionNote = "Json序列化出错",
                        RequestInfo = obj.GetType().FullName,
                    },
                    ex);
     
                    return null;
                }
            }
     
            /// <summary>
            /// 将指定的 JSON 数据反序列化成指定对象。
            /// </summary>
            /// <typeparam name="T">对象类型。</typeparam>
            /// <param name="json">JSON 数据。</param>
            /// <returns></returns>
            public static T FromJson<T>(this string json)
            {
                try
                {
                    return JsonConvert.DeserializeObject<T>(json, _jsonSettings);
                }
                catch (Exception ex)
                {
                    Logging.LogManager.Error(new Logging.ExceptionLogInfo()
                    {
                        ExceptionClassName = "YY.SZYD.Shop.Common.Utils.JsonHelper",
                        ExceptionMethod = "ToJson",
                        ExceptionNote = "Json序列化出错",
                        RequestInfo = json,
                    },
                    ex);
     
                    return default(T);
                }
            }
        }
    }
    
  • 相关阅读:
    IT资产管理系统SQL版
    反转单词(C#实现)
    删除数组中重复的元素(C#实现)
    最大子数组之和(C#实现)
    判断是否是三角形
    如何解决SSAS + SSRS + WSS3.0 之间的Windows 集成验证问题
    关于SharpDevelop
    规划一个SharePoint的解决方案
    Scalability Design
    合作意味着分享
  • 原文地址:https://www.cnblogs.com/xuhongfei/p/3066206.html
Copyright © 2011-2022 走看看