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.
70 lines
2.8 KiB
C#
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>();
|
|
}
|
|
|
|
}
|
|
} |