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);
                }
            }
        }
    }
    
  • 相关阅读:
    关于React的脚手架
    yarn和npm
    谈谈NPM和Webpack的关系
    php开发环境和框架phalcon的搭建
    Centos6.5--svn搭建
    System.Diagnostics.Process.Start(ProcessStartInfo)
    PHP错误:call to undefined function imagecreatetruecolor
    PostgreSQL删除表中重复数据行
    URL存在http host头攻击漏洞-修复方案
    for循环的执行顺序
  • 原文地址:https://www.cnblogs.com/xuhongfei/p/3066206.html
Copyright © 2011-2022 走看看