using System;
using System.Collections;
using System.Text.Json;
using System.Text.Json.Serialization;
using Milimoe.FunGame.Core.Library.Common.JsonConverter;
using Milimoe.FunGame.Core.Library.Common.Network;
namespace Milimoe.FunGame.Core.Service
{
internal class JsonManager
{
///
/// 默认的序列化选项
///
private readonly static JsonSerializerOptions GeneralOptions = new()
{
WriteIndented = true,
ReferenceHandler = ReferenceHandler.IgnoreCycles,
Converters = { new DateTimeConverter(), new DataTableConverter(), new DataSetConverter(), new UserConverter(), new RoomConverter() }
};
///
/// 注册一个自定义转换器
///
///
internal static void AddConverter(JsonConverter converter)
{
GeneralOptions.Converters.Add(converter);
}
///
/// 获取Json字符串
///
///
///
///
internal static string GetString(T obj)
{
return JsonSerializer.Serialize(obj, GeneralOptions);
}
///
/// 反序列化Json对象
///
///
///
///
internal static T? GetObject(string json)
{
return JsonSerializer.Deserialize(json, GeneralOptions);
}
///
/// 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别
///
///
///
internal static object? GetObject(string json)
{
return JsonSerializer.Deserialize