using Newtonsoft.Json; namespace QYZH.InteractiveMagazine.Common.Helpers { /// /// JSON工具类 /// public static class JsonHelper { /// /// JSON序列化设置 /// private static readonly JsonSerializerSettings _settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DateFormatString = "yyyy-MM-dd HH:mm:ss", ReferenceLoopHandling = ReferenceLoopHandling.Ignore }; /// /// 将对象序列化为JSON字符串 /// /// 对象 /// JSON字符串 public static string Serialize(object obj) { if (obj == null) { return string.Empty; } return JsonConvert.SerializeObject(obj, _settings); } /// /// 将对象序列化为格式化的JSON字符串 /// /// 对象 /// 格式化的JSON字符串 public static string SerializePretty(object obj) { if (obj == null) { return string.Empty; } return JsonConvert.SerializeObject(obj, Formatting.Indented, _settings); } /// /// 将JSON字符串反序列化为指定类型 /// /// 目标类型 /// JSON字符串 /// 反序列化后的对象 public static T? Deserialize(string json) { if (string.IsNullOrWhiteSpace(json)) { return default; } return JsonConvert.DeserializeObject(json, _settings); } /// /// 将JSON字符串反序列化为指定类型(带异常处理) /// /// 目标类型 /// JSON字符串 /// 反序列化失败时的默认值 /// 反序列化后的对象或默认值 public static T? TryDeserialize(string json, T? defaultValue = default) { if (string.IsNullOrWhiteSpace(json)) { return defaultValue; } try { T? result = JsonConvert.DeserializeObject(json, _settings); return result ?? defaultValue; } catch { return defaultValue; } } } }