using System.Text; using System.Text.Json; using System.Text.Json.Nodes; 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 ObjToBase64(object obj) { string utf8 = JsonSerializer.Serialize(obj, options); return Convert.ToBase64String(Encoding.UTF8.GetBytes(utf8)); } public static string JsonToBase64(string json) { return Convert.ToBase64String(Encoding.UTF8.GetBytes(json)); } public static string Base64ToJson(string base64) { return Encoding.UTF8.GetString(Convert.FromBase64String(base64)); } // public static JsonNode? JsonNodeFromJson(string json) // { // return JsonNode.Parse(json); // } //=========================================================== public static List PointsFromBase64(string base64) { string utf8 = Base64ToJson(base64); return PointsFromJson(utf8); } public static List PointsFromJson(string json) { return JsonSerializer.Deserialize>(json, options) ?? new List(); } public static Point PointFromBase64(string base64) { string utf8 = Base64ToJson(base64); return PointFromJson(utf8); } public static Point PointFromJson(string json) { return JsonSerializer.Deserialize(json, options) ?? throw new Exception("转化point类型失败:" + json); } } }