diff --git a/src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs b/src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs
new file mode 100644
index 0000000..048b217
--- /dev/null
+++ b/src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs
@@ -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
+ };
+ }
+}
\ No newline at end of file
diff --git a/src/NSExt/Extensions/StringExtensions.cs b/src/NSExt/Extensions/StringExtensions.cs
index 132695c..9201f7d 100644
--- a/src/NSExt/Extensions/StringExtensions.cs
+++ b/src/NSExt/Extensions/StringExtensions.cs
@@ -8,6 +8,9 @@ namespace NSExt.Extensions;
public static class StringExtensions
{
+ private static readonly JsonSerializerOptions _DEFAULT_JSON_SERIALIZER_OPTIONS =
+ default(JsonSerializerOptions).NewJsonSerializerOptions();
+
///
/// aes加密
///
@@ -428,10 +431,11 @@ public static class StringExtensions
/// 反序列化一个文件获得指定类型的数据对象
///
/// 等待反序列化的json文本
+ /// 序列化选项
/// 反序列化后生成的对象
- public static T Object(this string me)
+ public static T Object(this string me, JsonSerializerOptions options = null)
{
- return JsonSerializer.Deserialize(me);
+ return JsonSerializer.Deserialize(me, options ?? _DEFAULT_JSON_SERIALIZER_OPTIONS);
}
@@ -440,10 +444,11 @@ public static class StringExtensions
///
/// 等待反序列化的json文本
/// 实际类型
+ /// 序列化选项
/// 反序列化后生成的对象
- 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);
}
-}
+}
\ No newline at end of file