using JNPF.JsonSerialization; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace JNPF.Common.Security; /// /// JsonHelper /// 版 本:V3.4.2 /// 版 权:拓通智联科技有限公司(http://www.tuotong-tech.com) /// 作 者:JNPF开发平台组. /// public static class JsonHelper { /// /// 序列化提供器. /// public static IJsonSerializerProvider _jsonSerializer = App.GetService(typeof(NewtonsoftJsonSerializerProvider), App.RootServices) as IJsonSerializerProvider; /// /// Object 转 JSON字符串. /// /// /// public static string ToJsonString(this object obj) { return obj == null ? string.Empty : _jsonSerializer.Serialize(obj); } /// /// Object 转 JSON字符串. /// /// /// 序列化规则. /// public static string ToJsonString(this object obj, object jsonSerializerOptions = default) { return obj == null ? string.Empty : _jsonSerializer.Serialize(obj, jsonSerializerOptions); } /// /// JSON 字符串转 Object. /// /// 动态类型. /// 对象. /// public static T ToObject(this string json) { return _jsonSerializer.Deserialize(json); } /// /// JSON 字符串转 Object. /// /// 动态类型. /// 对象. /// 序列化规则. /// public static T ToObject(this string json, object jsonSerializerOptions = default) { return _jsonSerializer.Deserialize(json, jsonSerializerOptions); } /// /// Object 转 对象. /// /// 动态类型. /// /// public static T ToObject(this object json) { return ToJsonString(json).ToObject(); } /// /// Object 转 对象. /// /// 动态类型. /// /// 序列化规则. /// public static T ToObject(this object json, object jsonSerializerOptions = default) { return ToJsonString(json, jsonSerializerOptions).ToObject(jsonSerializerOptions); } /// /// 字符串转动态类型List. /// /// 动态类型. /// /// public static List ToList(this string json) { return _jsonSerializer.Deserialize>(json); } /// /// 字符串转动态类型List. /// /// 动态类型. /// /// 序列化规则. /// public static List ToList(this string json, object jsonSerializerOptions = default) { return _jsonSerializer.Deserialize>(json, jsonSerializerOptions); } /// /// 字符串 转 JObject. /// /// 字符串. /// public static JObject ToObject(this string json) { return json == null ? JObject.Parse("{}") : JObject.Parse(json.Replace(" ", string.Empty)); } /// /// 字符串 转 JSON. /// /// 字符串. /// public static string PraseToJson(string json) { JsonSerializer s = new JsonSerializer(); JsonReader reader = new JsonTextReader(new StringReader(json)); object jsonObject = s.Deserialize(reader); StringWriter sWriter = new StringWriter(); JsonWriter writer = new JsonTextWriter(sWriter); writer.Formatting = Formatting.Indented; s.Serialize(writer, jsonObject); return sWriter.ToString(); } }