using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Alchemy.Core.Extensions
{
public static class JsonExtension
{
///
///
///
///
///
public static string GetValue(this JToken token)
{
string result = "null";
switch (token.Type)
{
case JTokenType.Null:
result = "null";
break;
case JTokenType.Boolean:
result = $"{token}".ToLower();
break;
case JTokenType.String:
result = $"\"{token}\"";
break;
default:
result = $"{token}";
break;
}
return result;
}
///
/// Json字符串转换为实体对象
///
///
///
///
public static T? FromJson(this string input)
{
try
{
return JsonConvert.DeserializeObject(input);
}
catch
{
return default;
}
}
///
/// 实体对象转换为Json字符串
///
/// 对象
/// Json字符串
public static string ToJson(this object? obj)
{
if (obj.IsNull())
return string.Empty;
return JsonConvert.SerializeObject(obj);
}
///
/// 实体对象转换为Json格式化字符串
///
///
///
public static string ToPrettyJson(this object obj)
{
if (obj.IsNull())
return string.Empty;
return JsonConvert.SerializeObject(obj, Formatting.Indented);
}
///
/// 对象转安全Json字符串
///
///
///
public static string ToSafeJson(this object obj)
{
if (obj.IsNull())
return string.Empty;
return JsonConvert.SerializeObject(obj).Replace("\"", "\\\"");
}
}
}