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ダウンロード