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