using System; using System.Collections.Generic; using System.Data; using System.Text.RegularExpressions; using Newtonsoft.Json; namespace SCC.Common { /// /// 转换Json格式帮助类 /// public static class JsonExtensions { /// /// 对象序列化成Json字符串 /// /// 需要序列化的对象 /// 是否忽略值为NULL的属性,默认false /// public static string TryToJson(this object obj, bool isIgnoreNullValue = false) { string res; try { if (isIgnoreNullValue) { JsonSerializerSettings jsetting = new JsonSerializerSettings(); JsonConvert.DefaultSettings = () => { //日期类型默认格式化处理 //jsetting.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat; //jsetting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; //空值处理,忽略值为NULL的属性 jsetting.NullValueHandling = NullValueHandling.Ignore; return jsetting; }; res = JsonConvert.SerializeObject(obj, Formatting.Indented, jsetting); } else { res = JsonConvert.SerializeObject(obj); } } catch (Exception e) { LogHelper log = new LogHelper(); log.Warn(typeof(JsonExtensions), "对象序列化成Json字符串失败,方法:TryToJson(),异常信息:" + e.Message); res = ""; } return res; } /// /// Json字符串反序列化成对象集合 /// /// /// /// public static List JsonToList(this string json) { try { return JsonConvert.DeserializeObject>(json); } catch (Exception e) { LogHelper log = new LogHelper(); log.Warn(typeof(JsonExtensions), "Json字符串序列化成对象失败,方法:JsonToList(),异常信息:" + e.Message); } return default(List); } /// /// Json字符串反序列化成实体对象 /// /// /// /// public static T JsonToEntity(this string json) { try { return JsonConvert.DeserializeObject(json); } catch (Exception e) { LogHelper log = new LogHelper(); log.Warn(typeof(JsonExtensions), "\r\n===============================================================================\r\n"); log.Warn(typeof(JsonExtensions), "Json字符串序列化成对象失败,方法:JsonToEntity(),异常信息:" + e.Message + "\r\n"); log.Warn(typeof(JsonExtensions), json + "\r\n"); log.Warn(typeof(JsonExtensions), "\r\n===============================================================================\r\n"); } return default(T); } } }