Files
linker/linker.libs/extends/SerialzeExtends.cs
snltty 5d2754d6cb sync
2024-06-24 21:59:50 +08:00

49 lines
2.1 KiB
C#

using Linker.Libs.JsonConverters;
using System.Text.Json;
using System.Text.Unicode;
namespace Linker.Libs.Extends
{
public static class SerialzeExtends
{
private static JsonSerializerOptions jsonSerializerOptions1 = new JsonSerializerOptions
{
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(UnicodeRanges.All),
AllowTrailingCommas = true,
ReadCommentHandling = JsonCommentHandling.Skip,
PropertyNameCaseInsensitive = true,
Converters = { new IPAddressJsonConverter(), new IPEndpointJsonConverter(), new DateTimeConverter() }
};
private static JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions
{
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(UnicodeRanges.All),
AllowTrailingCommas = true,
ReadCommentHandling = JsonCommentHandling.Skip,
PropertyNameCaseInsensitive = true,
WriteIndented = true,
Converters = { new IPAddressJsonConverter(), new IPEndpointJsonConverter(), new DateTimeConverter() }
};
private static JsonSerializerOptions jsonSerializerOptionsIndented = new JsonSerializerOptions
{
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(UnicodeRanges.All),
AllowTrailingCommas = true,
ReadCommentHandling = JsonCommentHandling.Skip,
PropertyNameCaseInsensitive = true,
WriteIndented = true,
Converters = { new IPAddressJsonConverter(), new IPEndpointJsonConverter(), new DateTimeConverter() }
};
public static string ToJson(this object obj)
{
return JsonSerializer.Serialize(obj, jsonSerializerOptions1);
}
public static string ToJsonFormat(this object obj)
{
return JsonSerializer.Serialize(obj, jsonSerializerOptions);
}
public static T DeJson<T>(this string json)
{
return JsonSerializer.Deserialize<T>(json, options: jsonSerializerOptions);
}
}
}