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("\"", "\\\""); } } }