1
1
懒得勤快 2 жил өмнө
parent
commit
2648f7dd20

+ 12 - 0
Masuit.Tools.Abstractions/Extensions/BaseType/ObjectExtensions.cs

@@ -225,6 +225,18 @@ namespace Masuit.Tools
 			return JsonConvert.SerializeObject(obj, setting);
 		}
 
+		/// <summary>
+		/// json反序列化成对象
+		/// </summary>
+		public static T FromJson<T>(this string json, JsonSerializerSettings setting = null)
+		{
+			if (string.IsNullOrEmpty(json))
+			{
+				return default;
+			}
+			return JsonConvert.DeserializeObject<T>(json,setting);
+		}
+
 		/// <summary>
 		/// 链式操作
 		/// </summary>

+ 39 - 0
Masuit.Tools.Abstractions/Systems/MaskConverter.cs

@@ -0,0 +1,39 @@
+using System;
+using Newtonsoft.Json;
+
+namespace Masuit.Tools.Systems;
+
+public class MaskConverter:JsonConverter
+{
+    /// <summary>Writes the JSON representation of the object.</summary>
+    /// <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter" /> to write to.</param>
+    /// <param name="value">The value.</param>
+    /// <param name="serializer">The calling serializer.</param>
+    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
+    {
+        writer.WriteValue(value?.ToString().Mask());
+    }
+
+    /// <summary>Reads the JSON representation of the object.</summary>
+    /// <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader" /> to read from.</param>
+    /// <param name="objectType">Type of the object.</param>
+    /// <param name="existingValue">The existing value of object being read.</param>
+    /// <param name="serializer">The calling serializer.</param>
+    /// <returns>The object value.</returns>
+    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
+    {
+        return reader.Value;
+    }
+
+    /// <summary>
+    /// Determines whether this instance can convert the specified object type.
+    /// </summary>
+    /// <param name="objectType">Type of the object.</param>
+    /// <returns>
+    /// 	<c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>.
+    /// </returns>
+    public override bool CanConvert(Type objectType)
+    {
+        return true;
+    }
+}

+ 39 - 0
Masuit.Tools.Abstractions/Systems/MaskEmailConverter.cs

@@ -0,0 +1,39 @@
+using System;
+using Newtonsoft.Json;
+
+namespace Masuit.Tools.Systems;
+
+public class MaskEmailConverter:JsonConverter
+{
+    /// <summary>Writes the JSON representation of the object.</summary>
+    /// <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter" /> to write to.</param>
+    /// <param name="value">The value.</param>
+    /// <param name="serializer">The calling serializer.</param>
+    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
+    {
+        writer.WriteValue(value?.ToString().MaskEmail());
+    }
+
+    /// <summary>Reads the JSON representation of the object.</summary>
+    /// <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader" /> to read from.</param>
+    /// <param name="objectType">Type of the object.</param>
+    /// <param name="existingValue">The existing value of object being read.</param>
+    /// <param name="serializer">The calling serializer.</param>
+    /// <returns>The object value.</returns>
+    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
+    {
+        return reader.Value;
+    }
+
+    /// <summary>
+    /// Determines whether this instance can convert the specified object type.
+    /// </summary>
+    /// <param name="objectType">Type of the object.</param>
+    /// <returns>
+    /// 	<c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>.
+    /// </returns>
+    public override bool CanConvert(Type objectType)
+    {
+        return true;
+    }
+}