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

			}

		}

	}

}



 

dll下载

你可能感兴趣的:(json)