首页 > 编程语言 >C# 后端回传的Json数据转换为实体对象转换器JsonConverter的使用

C# 后端回传的Json数据转换为实体对象转换器JsonConverter的使用

时间:2024-10-12 11:25:00浏览次数:6  
标签:JsonConverter C# JsonDateTimeConverter DateTime Json dateTimeFormat null public

public class JsonDateTimeConverter : JsonConverter<DateTime?>
{
    private readonly string _dateTimeFormat;

    public JsonDateTimeConverter(string dateTimeFormat)
    {
        _dateTimeFormat = dateTimeFormat;
    }

    public override void WriteJson(JsonWriter writer, DateTime? value, JsonSerializer serializer)
    {
        switch (value)
        {
            case null:
                return;
            case { } dateTime:
                writer.WriteValue(dateTime.ToString(_dateTimeFormat));
                break;
        }
    }

    public override DateTime? ReadJson(JsonReader reader, Type objectType, DateTime? existingValue, bool hasExistingValue,
        JsonSerializer serializer)
    {
        if (reader.Value == null) return null;
        return DateTime.Parse(reader.Value.ToString());
    }
}
[JsonProperty("day"), JsonConverter(typeof(JsonDateTimeConverter), "yyyy-MM-dd HH:mm:ss")]
public DateTime? Day { get; set; }

 

标签:JsonConverter,C#,JsonDateTimeConverter,DateTime,Json,dateTimeFormat,null,public
From: https://www.cnblogs.com/log9527blog/p/18460168

相关文章

  • iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例
    作者:UC浏览器后端工程师,梁若羽传统ELK方案众所周知,ELK中的E指的是ElasticSearch,L指的是Logstash,K指的是Kibana。Logstash是功能强大的数据处理管道,提供了复杂的数据转换、过滤和丰富的数据输入输出支持。Filebeat是师出同门的轻量级日志文件收集器,在处理大量日志文......
  • c语言链表-学生管理系统
    include<stdio.h>include<stdlib.h>include<string.h>//定义结构体structSTU{charnum[8];//学号charname[5];//姓名intscore;//成绩};//定义链表structtemp{structSTU*s;structtemp*next;};voidadd(structtemp**head);//......
  • 三、Spring Boot集成Spring Security之securityFilterChain过滤器链详解
    二、默认过滤器链1、默认配置系统启动日志2、默认配置的过滤器及顺序如下org.springframework.security.web.session.DisableEncodeUrlFilterorg.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilterorg.springframework.security.web.c......
  • FMC160-两路14位400Msps AD,两路16位400Msps DA FMC子卡模块
     一、概述 该板卡可实现2路14bit400MspsAD和2路16bit400MspsDA功能,遵循VITA57标准,北京太速科技板卡可以直接与VME/VXS/AMC/VPX/PCI-EFPGA载板连接使用,用于模拟信号、中频信号采集,信号发出等应用,是xilinx开发板设计的标准板卡。  二、 性能指标板卡功能......
  • AIGC产品经理面试,看这里!送你20道高频面试题及分析PDF文件!
    作者简介小6,世界五百强产品出身,从0到1搭建公司IT团队,现任深圳某互联网公司IT负责人,<极客时间>课程讲师。愿景:希望可以让你在这里从对产品经理的一无所知到至少能找份相关工作!聊点AI面试的,这两年最火的产业,分享20道AIGC产品经理高频面试题,文章后面会有送PDF文件的方式......
  • 【AIGC产品经理】面试7家,拿到2个offer,薪资中上水平
    Hello,大家好,我是一名不知名的5年B端金融产品经验的产品经理,成功转行AI产品经理,前期面试了北京百度、阿里、理想汽车、百川智能、华为、OPPO等多家大厂面试,但是由于已定居成都,主动终止了后续需要线下的面试流程。最终,入职一家成都人工智能科技公司,做AI产品经理,薪资在当地算......
  • Scannner
    在Java中,Scanner类提供了多种方法来读取用户输入,其中next和nextLine是两个常用的方法,但它们在功能和行为上有明显的区别。下面详细介绍这两个方法的区别:1. next 方法功能:读取下一个单词(即下一个由空格分隔的字符串)。行为:next 方法会读取输入中的下一个标记(token),直到......
  • 【计算机网络】TCP三次握手
    【计算机网络】TCP三次握手TCP三次握手流程TCP是面向连接的运输层协议,基于TCP进行通信时,需要首先建立连接,TCP连接过程需要进行三次报文(segment)的交换,因此被称为三次握手。为什么是三次?防止历史连接重复初始化如果客户端第一次握手由于网络阻塞,延迟到达,此时客户端以为该......
  • 关于C++当中全局变量的释放问题
    一、由来主要是在修改公司的一个MFC项目的时候遇到的问题,我在MFC页面的析构函数当中对一个全局图像变量进行了释放,具体如下:ai_engine_OCR::~ai_engine_OCR(){//及时释放内存if(g_pImg_open!=NULL){deleteg_pImg_open;g_pImg_open=NULL......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(篮球)
    HTML+CSS+JS【购物商城】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......