一、.net
一般都是自定义的JsonHelper类,解决办法很简单,可以全局配置
public static class JsonHelper
{
static JsonHelper()
{
JsonSerializerSettings setting = new();
JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
{
setting.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
setting.DateTimeZoneHandling = DateTimeZoneHandling.Local;
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
//setting.NullValueHandling = NullValueHandling.Ignore; 谨慎开启
//setting.Converters.Add(new BoolConvert("是,否")); 谨慎开启
return setting;
});
}
public static T FromJson<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
public static string ToJson(object obj)
{
return JsonConvert.SerializeObject(obj);
}
}
二、.net6 webapi
webapi 需要在Program.cs中配置
builder.Services.AddControllers().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
//时间处理
options.SerializerSettings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
});
需要注意,此方法只适用于json数据,包括接收和返回,[FromForm]和QueryString,暂未找到其他方法,建议使用DateTimeOffset 类型来接收,方便转换。