广丰卷烟厂数采质量分析系统
zhuguifei
7 天以前 6990c6f4934e6062b07f1fa9471c2b98d4077729
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package org.dromara.common.json.handler;
 
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import org.dromara.common.core.utils.ObjectUtils;
 
import java.io.IOException;
import java.util.Date;
 
/**
 * 自定义 Date 类型反序列化处理器(支持多种格式)
 *
 * @author AprilWind
 */
public class CustomDateDeserializer extends JsonDeserializer<Date> {
 
    /**
     * 反序列化逻辑:将字符串转换为 Date 对象
     *
     * @param p    JSON 解析器,用于获取字符串值
     * @param ctxt 上下文环境(可用于获取更多配置)
     * @return 转换后的 Date 对象,若为空字符串返回 null
     * @throws IOException 当字符串格式非法或转换失败时抛出
     */
    @Override
    public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
        DateTime parse = DateUtil.parse(p.getText());
        if (ObjectUtils.isNull(parse)) {
            return null;
        }
        return parse.toJdkDate();
    }
 
}