JsonHelperクラス(c#オブジェクトとjsonの相互回転)

2441 ワード

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

			}

		}

	}

}




 
dllダウンロード