You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OMS.NET/Common/Utils.cs

70 lines
2.8 KiB
C#

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<Point> PointsFromBase64(string base64)
{
string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64));
return JsonSerializer.Deserialize<List<Point>>(utf8, options) ?? new List<Point>();
}
public static Point? PointFromBase64(string base64)
{
string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64));
return JsonSerializer.Deserialize<Point>(utf8, options);
}
//===========================================================
public static List<KeyValuePair<string, string>> DetailsFromBase64(string base64)
{
string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64));
return JsonSerializer.Deserialize<List<KeyValuePair<string, string>>>(utf8, options) ?? new List<KeyValuePair<string, string>>();
}
public static Dictionary<string, string> MembersFromBase64(string base64)
{
string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64));
return JsonSerializer.Deserialize<Dictionary<string, string>>(utf8, options) ?? new Dictionary<string, string>();
}
public static List<long> OrderMembersFromBase64(string base64)
{
//string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64));
return JsonSerializer.Deserialize<List<long>>(base64, options) ?? new List<long>();
}
public static List<object> StructuresFromBase64(string base64)
{
string utf8 = Encoding.UTF8.GetString(Convert.FromBase64String(base64));
return JsonSerializer.Deserialize<List<object>>(utf8, options) ?? new List<object>();
}
}
}