mirror of
https://github.com/nsnail/ns-ext.git
synced 2025-04-18 23:22:51 +08:00
添加序列化选项
This commit is contained in:
parent
97dcf0e49b
commit
c8cf4eac49
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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user