mirror of
				https://github.com/nsnail/ns-ext.git
				synced 2025-10-31 23:15:28 +08:00 
			
		
		
		
	添加序列化选项
This commit is contained in:
		
							
								
								
									
										21
									
								
								src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| using System.Text.Encodings.Web; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace NSExt.Extensions; | ||||
|  | ||||
| public static class JsonSerializerOptionsExtensions | ||||
| { | ||||
|     public static JsonSerializerOptions NewJsonSerializerOptions(this JsonSerializerOptions me) | ||||
|     { | ||||
|         return new JsonSerializerOptions { | ||||
|             ReadCommentHandling         = JsonCommentHandling.Skip, | ||||
|             AllowTrailingCommas         = true, | ||||
|             DictionaryKeyPolicy         = JsonNamingPolicy.CamelCase, | ||||
|             PropertyNamingPolicy        = JsonNamingPolicy.CamelCase, | ||||
|             Encoder                     = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, | ||||
|             NumberHandling              = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString, | ||||
|             PropertyNameCaseInsensitive = true | ||||
|         }; | ||||
|     } | ||||
| } | ||||
| @@ -8,6 +8,9 @@ namespace NSExt.Extensions; | ||||
|  | ||||
| public static class StringExtensions | ||||
| { | ||||
|     private static readonly JsonSerializerOptions _DEFAULT_JSON_SERIALIZER_OPTIONS = | ||||
|         default(JsonSerializerOptions).NewJsonSerializerOptions(); | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     aes加密 | ||||
|     /// </summary> | ||||
| @@ -428,10 +431,11 @@ public static class StringExtensions | ||||
|     ///     反序列化一个文件获得指定类型的数据对象 | ||||
|     /// </summary> | ||||
|     /// <param name="me">等待反序列化的json文本</param> | ||||
|     /// <param name="options">序列化选项</param> | ||||
|     /// <returns>反序列化后生成的对象</returns> | ||||
|     public static T Object<T>(this string me) | ||||
|     public static T Object<T>(this string me, JsonSerializerOptions options = null) | ||||
|     { | ||||
|         return JsonSerializer.Deserialize<T>(me); | ||||
|         return JsonSerializer.Deserialize<T>(me, options ?? _DEFAULT_JSON_SERIALIZER_OPTIONS); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @@ -440,10 +444,11 @@ public static class StringExtensions | ||||
|     /// </summary> | ||||
|     /// <param name="me">等待反序列化的json文本</param> | ||||
|     /// <param name="type">实际类型</param> | ||||
|     /// <param name="options">序列化选项</param> | ||||
|     /// <returns>反序列化后生成的对象</returns> | ||||
|     public static object Object(this string me, Type type) | ||||
|     public static object Object(this string me, Type type, JsonSerializerOptions options = null) | ||||
|     { | ||||
|         return JsonSerializer.Deserialize(me, type); | ||||
|         return JsonSerializer.Deserialize(me, type, options ?? _DEFAULT_JSON_SERIALIZER_OPTIONS); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @@ -564,4 +569,4 @@ public static class StringExtensions | ||||
|                            .Replace("-", string.Empty) | ||||
|                            .ToLower(CultureInfo.CurrentCulture); | ||||
|     } | ||||
| } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user