mirror of
https://github.com/nsnail/ns-ext.git
synced 2025-04-20 01: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
|
public static class StringExtensions
|
||||||
{
|
{
|
||||||
|
private static readonly JsonSerializerOptions _DEFAULT_JSON_SERIALIZER_OPTIONS =
|
||||||
|
default(JsonSerializerOptions).NewJsonSerializerOptions();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// aes加密
|
/// aes加密
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -428,10 +431,11 @@ public static class StringExtensions
|
|||||||
/// 反序列化一个文件获得指定类型的数据对象
|
/// 反序列化一个文件获得指定类型的数据对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="me">等待反序列化的json文本</param>
|
/// <param name="me">等待反序列化的json文本</param>
|
||||||
|
/// <param name="options">序列化选项</param>
|
||||||
/// <returns>反序列化后生成的对象</returns>
|
/// <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>
|
/// </summary>
|
||||||
/// <param name="me">等待反序列化的json文本</param>
|
/// <param name="me">等待反序列化的json文本</param>
|
||||||
/// <param name="type">实际类型</param>
|
/// <param name="type">实际类型</param>
|
||||||
|
/// <param name="options">序列化选项</param>
|
||||||
/// <returns>反序列化后生成的对象</returns>
|
/// <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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user