using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Text.Json; namespace New_College.Common.Helper { public class JsonHelper { /// /// Json 序列化配置 /// public static readonly JsonSerializerSettings JsonSerializerSettings = new JsonSerializerSettings { Converters = new List() { new IsoDateTimeConverter{ DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" } }, NullValueHandling = NullValueHandling.Include, ContractResolver = new CamelCasePropertyNamesContractResolver(), ReferenceLoopHandling = ReferenceLoopHandling.Serialize, PreserveReferencesHandling = PreserveReferencesHandling.None, }; /// /// 转换对象为json格式字符串 /// /// /// 加载设置 /// public static string ToJson(object obj, bool loadSetting = true) { return loadSetting // 设置参数为Formatting.Indented可输出格式化后的json ? JsonConvert.SerializeObject(obj, Formatting.None, JsonSerializerSettings) : JsonConvert.SerializeObject(obj, Formatting.None); } /// /// 转换json格式字符串为指定类型对象 /// /// /// /// public static T ParseJson(string json) { try { return JsonConvert.DeserializeObject(json); } catch (Exception ex) { return default(T); } } /// /// 转换对象为JSON格式数据 /// /// /// 对象 /// 字符格式的JSON数据 public static string GetJSON(object obj) { string result = String.Empty; try { System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { serializer.WriteObject(ms, obj); result = System.Text.Encoding.UTF8.GetString(ms.ToArray()); } } catch (Exception ex) { throw ex; } return result; } /// /// 转换List的数据为JSON格式 /// /// /// 列表值 /// JSON格式数据 public string JSON(List vals) { System.Text.StringBuilder st = new System.Text.StringBuilder(); try { System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); foreach (T city in vals) { using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { s.WriteObject(ms, city); st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray())); } } } catch (Exception ex) { throw ex; } return st.ToString(); } /// /// JSON格式字符转换为T类型的对象 /// /// /// /// public static T ParseFormByJson(string jsonStr) { T obj = Activator.CreateInstance(); using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr))) { System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); return (T)serializer.ReadObject(ms); } } public string JSON1(List vals) { System.Text.StringBuilder st = new System.Text.StringBuilder(); try { System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(SendData)); foreach (SendData city in vals) { using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { s.WriteObject(ms, city); st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray())); } } } catch (Exception ex) { throw ex; } return st.ToString(); } } }