using System.Globalization;
using Newtonsoft.Json.Linq;
namespace SparkClient.Model.Extension;
public static class CommonExtension
{
///
/// 安全的ToString
///
///
///
public static string ToSafeString(this object obj)
{
if (null == obj)
{
return "";
}
else
{
return obj.ToString();
}
}
///
/// 简单的判断字符串是否为Null或空白
///
///
///
public static bool IsNullOrEmpty(this string str)
{
return String.IsNullOrEmpty(str);
}
///
/// 生成对象签名(Null对象为时间戳)
///
///
///
public static string GenerateSign(this object obj)
{
if (null == obj)
{
return Helper.Common.GenerateMd5Hash(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff"));
}
else
{
var str = $"{DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff")}-{obj.GetHashCode()}-{Helper.Common.AesKey}";
return Helper.Common.GenerateMd5Hash(str);
}
}
///
/// 字符串按类型转为JToken
///
///
///
public static JToken ConvertJTokenValue(this string value)
{
// 处理布尔类型(不区分大小写)
if (string.Equals(value, "true", StringComparison.OrdinalIgnoreCase))
return new JValue(true);
if (string.Equals(value, "false", StringComparison.OrdinalIgnoreCase))
return new JValue(false);
// 处理数值类型
if (double.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out double numericValue))
{
// 判断是否为整数
if (numericValue == Math.Truncate(numericValue))
{
// 在int范围内转换为整型
if (numericValue >= int.MinValue && numericValue <= int.MaxValue)
return new JValue((int)numericValue);
// 超出int范围使用long类型
return new JValue((long)numericValue);
}
// 保留小数部分
return new JValue(numericValue);
}
// 默认处理为字符串
return new JValue(value);
}
// public static string ConvertNumberToString(this ob value)
// {
// return "";
// }
}