net core json 扩展类
江湖规矩,先看效果:
扩展类源码:
using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using System.Collections.Generic; using System.Data; using System.Linq; using System.Xml; namespace Hasky.Common { public static class Json { public static object ToJson(this string Json) { return Json == null ? null : JsonConvert.DeserializeObject(Json); } public static string ToJson(this object obj) { var timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; return JsonConvert.SerializeObject(obj, timeConverter); } /// <summary> /// 转Json字符串,删除空值字段 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string ToJsonDelNull(this object obj) { var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; return JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented, jsonSetting); } public static string ToJsonNoTime(this object obj) { return JsonConvert.SerializeObject(obj); } public static string ToJson(this object obj, string datetimeformats) { var timeConverter = new IsoDateTimeConverter { DateTimeFormat = datetimeformats }; return JsonConvert.SerializeObject(obj, timeConverter); } public static T ToObject<T>(this string Json) { return Json == null ? default : JsonConvert.DeserializeObject<T>(Json); } public static List<T> ToList<T>(this string Json) { return Json == null ? null : JsonConvert.DeserializeObject<List<T>>(Json); } public static DataTable ToTable(this string Json) { return Json == null ? null : JsonConvert.DeserializeObject<DataTable>(Json); } public static JObject ToJObject(this string Json) { return Json == null ? JObject.Parse("{}") : JObject.Parse(Json.Replace(" ", "")); } public static JArray ToJArray(this string Json) { return Json == null ? JArray.Parse("[]") : JArray.Parse(Json.Replace(" ", "")); } public static Dictionary<string, string[]> FromJsonToDictionary(this string json) { string[] keyValueArray = json.Replace("{", string.Empty).Replace("}", string.Empty).Replace("\\\"", string.Empty).Split(','); return keyValueArray.ToDictionary(item => item.Split(':')[0].Replace("\"", string.Empty).Trim(), item => item.Split(':')[1].Replace("\"", string.Empty).Trim().Split(',')); } public static string GetVal(this JObject jsonObj, string key) { object valObj = jsonObj.GetValue(key); if (valObj != null) { return valObj.ToString().Trim(); } else { return ""; } } public static string XmlToJsonString(string xmlString) { XmlDocument doc = new(); doc.LoadXml(xmlString); string jsonString = JsonConvert.SerializeXmlNode(doc.DocumentElement); return jsonString; } public static JObject XmlToJson(string xmlString) { XmlDocument doc = new(); doc.LoadXml(xmlString); string jsonString = JsonConvert.SerializeXmlNode(doc.DocumentElement); return jsonString.ToJObject(); } } }