首页 > 其他分享 >.net core webapi统一修改日期时间的返回格式

.net core webapi统一修改日期时间的返回格式

时间:2024-04-02 15:33:26浏览次数:27  
标签:webapi core DateTime JsonSerializerOptions public reader 格式 net options

在写WebApi时,我们的日期时间往往是DateTime类型,如果直接返回,前端拿到的结果有可能会是这种格式:

下面是如何将返回的DateTime字段统一改成自定义的格式

首先创建一个自定义的JSON序列化器,定义一个继承System.Text.Json.Serialization.JsonConverter的类,实现Read和Write两个抽象方法。

public class DatetimeJsonConverter : JsonConverter<DateTime>
{
    public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
    {
        if(reader.TokenType==JsonTokenType.String)
        {
            if (DateTime.TryParse(reader.GetString(), out DateTime dateTime)) return dateTime;
        }
        return reader.GetDateTime();
    }

    public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
    {
        writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));
    }
}

然后在Program.cs中添加JSON序列化器

builder.Services.AddControllers().AddJsonOptions(options=> 
options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter())
);

再调用之前的API,返回的DateTime类型字段就格式化成Write方法中的"yyyy-MM-dd HH:mm:ss"格式了。

标签:webapi,core,DateTime,JsonSerializerOptions,public,reader,格式,net,options
From: https://www.cnblogs.com/wlzx-dic/p/18110690

相关文章

  • .NET 服务发现
    .NET服务发现https://learn.microsoft.com/en-us/dotnet/core/extensions/service-discovery?tabs=dotnet-cli目前该包处于预览状态在本文中,我将为你介绍如何使用Microsoft.Extensions.ServiceDiscovery库,服务发现是开发者使用逻辑名称而不是物理地址(IP地址和端口)来......
  • C# .NET6 WebAPI JWT身份验证服务
    自定义扩展类usingMicrosoft.AspNetCore.Authentication;usingMicrosoft.AspNetCore.Authentication.JwtBearer;usingMicrosoft.AspNetCore.Mvc;usingMicrosoft.AspNetCore.Mvc.ModelBinding;usingSystem.Text.Json;namespaceDemo{///<summary>///......
  • ios 之 netty版本swiftNio(socket创建)
    SwiftNio简介用于高性能协议服务器和客户端的事件驱动、无阻塞的网络应用程序框架。SwiftNIO是一个跨平台异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这就像Netty,但是为Swift写的。Xcode引入swiftNio        在实际写代码前,......
  • C# .NET6 WebAPI 全局异常过滤器
    自定义返回级别namespaceDemo{///<summary>///自定义返回级别///</summary>publicenumResultLevel:int{///<summary>///正确///</summary>OK=0,///<summary>......
  • 《拆解一切问题》如何成为解决难题的高手 - 三余书屋 3ysw.net
    拆解一切问题:如何成为解决难题的高手今天给大家分享的这本书叫做《拆解一切问题》,标题看起来确实有点虚,在没有读这本书之前,会让人感觉似乎只要读完学会书中的内容,就可以解决一切问题了。但事实上这种认识是误解,并没有什么问题的解决可以采用通用的方法。不过,作者在文中聊到的......
  • 《第3选择》解决所有难题的关键思维 - 三余书屋 3ysw.net
    第3选择:解决所有难题的关键思维《第3选择》解决所有难题的关键思维,面对两难困境,从冲突中找到互相协同的出路你好,今天我们要聊的这本书是《第3选择》,它出自美国著名作家史蒂芬·科维之手。科维是国际上非常知名的管理学家,甚至被《时代》周刊评为史上最有影响力的25人之一,《......
  • C#/.NET/.NET Core优秀项目和框架2024年3月简报
    前言公众号每月定期推广和分享的C#/.NET/.NETCore优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架......
  • Kubernetes kafka系列 | Strimzi 部署kafka-bridge
    Strimzi+kafka集群部署直通车一、kafkabridge介绍KafkaBridge是ApacheKafka生态系统中的一个工具或组件,用于实现Kafka与其他系统或协议之间的通信或集成。Kafka本身是一个分布式事件流平台,广泛用于构建实时数据流水线和流式应用程序。然而,并非所有系统或应用程......
  • EF Core – Owned Entity Types & Complex Types
    前言EFCore8.0推出了ComplexTypes,这篇要来介绍一下。由于它和 OwnedEntityTypes傻傻分不清楚,加上我之前也没有写过 OwnedEntityTypes的文章,所以这篇就一起介绍呗。 OwnedEntityTypesOwnedEntityTypes本质上任然属于一种EntityTypes,只是它有一些潜规则,所......
  • C#/.NET/.NET Core优秀项目和框架
    C#/.NET/.NETCore优秀项目和框架2024年3月简报 前言公众号每月定期推广和分享的C#/.NET/.NETCore优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学......