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);
                }
            }
        }
    }
    
  • 相关阅读:
    JSP学习(一)
    Servlet学习(五)——通过response设置响应体及中文乱码问题
    SQLServer -------- 不展示后两位小数
    MySQL ------ 数据库操作 (二)
    MySQL ------ CentOS 上 安装mysql (一)
    java ----------- I/O (六) 标准输入输出流
    java ----- I/O (五) 数据流读写文件
    Linux ------ centos 上安装JDK
    iis 中找不到安装的 .net 4.0
    清理C 盘
  • 原文地址:https://www.cnblogs.com/xuhongfei/p/3066206.html
Copyright © 2011-2022 走看看