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 ToObjectOld(this string json)
{
return _ = JsonConvert.DeserializeObject(json) ?? default(T);
}
///
/// 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();
}
}