using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json.Converters; using Newtonsoft.Json; namespace DH.RBAC.Utility.Other { public static class JsonHelper { /// /// 对象序列化成JSON字符串。 /// /// 序列化对象 /// 设置需要忽略的属性 /// public static string ToJson(this object obj) { if (obj == null) return string.Empty; IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; return JsonConvert.SerializeObject(obj, timeConverter); } /// /// JSON字符串序列化成对象。 /// /// 对象类型 /// JSON字符串 /// public static T ToObject(this string json) { //var setting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; return json == null ? default(T) : JsonConvert.DeserializeObject(json);//, setting); } /// /// JSON字符串序列化成集合。 /// /// 集合类型 /// JSON字符串 /// public static List ToList(this string json) { //var setting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; return json == null ? null : JsonConvert.DeserializeObject>(json);//, setting); } /// /// JSON字符串序列化成DataTable。 /// /// JSON字符串 /// public static DataTable ToTable(this string json) { return json == null ? null : JsonConvert.DeserializeObject(json); } /// /// 将JSON字符串反序列化成对象 /// /// /// /// /// public static T Json2Obj(T baseEntity, string strJson) { return JsonConvert.DeserializeAnonymousType(strJson, baseEntity); } /// /// 将对象转换层JSON字符串 /// /// /// /// public static string Obj2Json(T data) { return JsonConvert.SerializeObject(data); } public static List JsonToList(string strJson) { T[] list = JsonConvert.DeserializeObject(strJson); return list.ToList(); } public static T Json2Obj(string strJson) { return JsonConvert.DeserializeObject(strJson); } public static DataTable ToDataTable(this string json) { return json.ToTable(); } public static string FormatJson(this string json) { //格式化json字符串 JsonSerializer serializer = new JsonSerializer(); TextReader tr = new StringReader(json); JsonTextReader jtr = new JsonTextReader(tr); object obj = serializer.Deserialize(jtr); if (obj != null) { StringWriter textWriter = new StringWriter(); JsonTextWriter jsonWriter = new JsonTextWriter(textWriter) { Formatting = Formatting.Indented, Indentation = 4, IndentChar = ' ' }; serializer.Serialize(jsonWriter, obj); return textWriter.ToString(); } else { return json; } } } }