using System.Text; using System.Text.Json; using System.Text.Json.Serialization; namespace OMS.NET.Common { public class Point { public double X { get; set; } public double Y { get; set; } } public class Util { public static readonly JsonSerializerOptions options = new() { ReadCommentHandling = JsonCommentHandling.Skip, //允许注释 AllowTrailingCommas = true,//允许尾随逗号 //PropertyNamingPolicy = new InstructNamingPolicy(), // 属性名为定制转换 DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, // 忽略 null 值 WriteIndented = true, // 美化输出 PropertyNameCaseInsensitive = true,//属性名忽略大小写 }; public static string DetailsToBase64(object obj) { string utf8 = JsonSerializer.Serialize(obj, options); return Convert.ToBase64String(Encoding.UTF8.GetBytes(utf8)); } //=========================================================== public static List PointsFromBase64(string base64) { string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64)); return JsonSerializer.Deserialize>(utf8, options) ?? new List(); } public static Point? PointFromBase64(string base64) { string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64)); return JsonSerializer.Deserialize(utf8, options); } //=========================================================== public static List> DetailsFromBase64(string base64) { string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64)); return JsonSerializer.Deserialize>>(utf8, options) ?? new List>(); } public static Dictionary MembersFromBase64(string base64) { string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64)); return JsonSerializer.Deserialize>(utf8, options) ?? new Dictionary(); } public static List OrderMembersFromBase64(string base64) { //string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64)); return JsonSerializer.Deserialize>(base64, options) ?? new List(); } public static List StructuresFromBase64(string base64) { string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64)); return JsonSerializer.Deserialize>(utf8, options) ?? new List(); } } }