using System.Text.Json;
using System.Text.Json.Serialization;
using Bunny.Dao.Common.Constant;
namespace Bunny.WebApi.Configuration;
///
/// 自定义Json转换器,用于将DateTime类型转换为JSON格式
///
public class JsonDateTimeConverter : JsonConverter
{
///
/// 重写读取方法,将JSON数据转换为DateTime类型
///
/// JSON读取器
/// 要转换的目标类型
/// JSON序列化选项
/// 转换后的DateTime对象
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return DateTime.TryParse(reader.GetString(), out var date) ? date : default;
}
///
/// 重写写入方法,将DateTime对象转换为JSON格式并写入JSON写入器
///
/// JSON写入器
/// 要写入的DateTime对象
/// JSON序列化选项
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
// 将DateTime对象转换为特定格式的字符串并写入JSON写入器
writer.WriteStringValue(value.ToString(LocalDateTimeConstant.DefaultDateTimeSecondFormat));
}
}