using NCC.Dependency; using System; using System.Collections.Generic; namespace NCC.JsonSerialization { /// /// JSON 静态帮助类 /// [SuppressSniffer] public static class JSON { /// /// 获取 JSON 序列化提供器 /// /// /// public static IJsonSerializerProvider GetJsonSerializer(IServiceProvider serviceProvider = default) { return App.GetService(serviceProvider ?? App.RootServices); } /// /// 序列化对象 /// /// /// /// /// public static string Serialize(this object value, object jsonSerializerOptions = default, IServiceProvider serviceProvider = default) { return GetJsonSerializer(serviceProvider).Serialize(value, jsonSerializerOptions); } /// /// 反序列化字符串 /// /// /// /// /// /// public static T Deserialize(this string json, object jsonSerializerOptions = default, IServiceProvider serviceProvider = default) { return GetJsonSerializer(serviceProvider).Deserialize(json, jsonSerializerOptions); } /// /// 获取 JSON 配置选项 /// /// /// /// public static TOptions GetSerializerOptions(IServiceProvider serviceProvider = default) where TOptions : class { return GetJsonSerializer(serviceProvider).GetSerializerOptions() as TOptions; } /// /// 把对象类型转化为指定类型 /// /// /// /// /// /// public static T ToObeject(this Object json, object jsonSerializerOptions = default, IServiceProvider serviceProvider = default) { return Serialize(json).Deserialize(); } /// /// 把数组字符串转化为指定类型数组 /// /// /// /// /// /// public static List ToList(this string json, object jsonSerializerOptions = default, IServiceProvider serviceProvider = default) { return json == null ? null : json.Deserialize>(); ; } } }