zoukankan      html  css  js  c++  java
  • springboot @RequestBody使用JsonSerialize与 JsonDeserialize自定义转参数,处理Date日期格式

    JsonDeserialize:

    1、请求接收的是一个json,并且由对象接收

        @RequestMapping(value = "/query", method = {RequestMethod.POST},consumes = "application/json")
        public WebDataListResponse query(@RequestBody(required = true) DataLogQuryEntity dataLogQuryEntity){
    

    2、对象属性的set方法编写注解  

    DataLogQuryEntity对象中需要接受Date类型的对象:
    public class DataLogQuryEntity  {
    
    @JsonDeserialize(using = DateJsonDeserializer.class)
        public void setStartTime(Date startTime) {
            this.startTime = startTime;
        }
    
    }
    

      注lombok的注意一定要写在setter方法上

    3、自定义实现

    import com.fasterxml.jackson.core.JsonParser;
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.DeserializationContext;
    import com.fasterxml.jackson.databind.JsonDeserializer;
    import org.apache.commons.lang3.StringUtils;
    
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class DateJsonDeserializer  extends JsonDeserializer<Date> {
        public static final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        @Override
        public Date deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException, JsonProcessingException {
            try {
                if (jsonParser != null && StringUtils.isNotEmpty(jsonParser.getText())) {
                    return format.parse(jsonParser.getText());
                } else {
                    return null;
                }
            } catch (Exception e) {
                System.out.println(e.getMessage());
                throw new RuntimeException(e);
            }
    
    
        }
    }
    

      

    JsonSerialize用法:

    1、对象的get方法应用注解

    @JsonSerialize(using = CustomDateSerializer.class)
        public LocalDateTime getUpdateTime() {
            return updateTime;
        }
    

    2、自定义实现

    import com.fasterxml.jackson.core.JsonGenerator;
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.JsonSerializer;
    import com.fasterxml.jackson.databind.SerializerProvider;
    
    import java.io.IOException;
    import java.time.LocalDateTime;
    
    public class CustomDateSerializer extends JsonSerializer<LocalDateTime> {
        @Override
        public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
            gen.writeString(value.toString());
        }
    }
    

      

  • 相关阅读:
    Storm中的定时任务
    Storm的acker确认机制
    ORACLE数据库表解锁record is locked by another user
    Java生成某段时间内的随机时间
    Linux中断概述
    Linux内核同步:RCU
    Linux内核同步:自旋锁
    Linux软中断、tasklet和工作队列
    Linux信号机制
    缺页异常处理
  • 原文地址:https://www.cnblogs.com/jifeng/p/9700911.html
Copyright © 2011-2022 走看看