mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	重构 LocalDateTimeDeserializer 和 LocalDateTimeSerializer 的命名,可读性更好
This commit is contained in:
		| @@ -2,9 +2,9 @@ package cn.iocoder.yudao.framework.jackson.config; | ||||
|  | ||||
| import cn.hutool.core.collection.CollUtil; | ||||
| import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.LocalDateTimeDeserializer; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.LocalDateTimeSerializer; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.NumberSerializer; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeDeserializer; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeSerializer; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
| import com.fasterxml.jackson.databind.module.SimpleModule; | ||||
| import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; | ||||
| @@ -37,13 +37,13 @@ public class YudaoJacksonAutoConfiguration { | ||||
|                 .addDeserializer(LocalDate.class, LocalDateDeserializer.INSTANCE) | ||||
|                 .addSerializer(LocalTime.class, LocalTimeSerializer.INSTANCE) | ||||
|                 .addDeserializer(LocalTime.class, LocalTimeDeserializer.INSTANCE) | ||||
|                 // 新增 LocalDateTime 序列化、反序列化规则 | ||||
|                 .addSerializer(LocalDateTime.class, LocalDateTimeSerializer.INSTANCE) | ||||
|                 .addDeserializer(LocalDateTime.class, LocalDateTimeDeserializer.INSTANCE); | ||||
|                 // 新增 LocalDateTime 序列化、反序列化规则,使用 Long 时间戳 | ||||
|                 .addSerializer(LocalDateTime.class, TimestampLocalDateTimeSerializer.INSTANCE) | ||||
|                 .addDeserializer(LocalDateTime.class, TimestampLocalDateTimeDeserializer.INSTANCE); | ||||
|         // 1.2 注册到 objectMapper | ||||
|         objectMappers.forEach(objectMapper -> objectMapper.registerModule(simpleModule)); | ||||
|  | ||||
|         // 2. 设置 objectMapper 到 JsonUtils { | ||||
|         // 2. 设置 objectMapper 到 JsonUtils | ||||
|         JsonUtils.init(CollUtil.getFirst(objectMappers)); | ||||
|         log.info("[init][初始化 JsonUtils 成功]"); | ||||
|         return new JsonUtils(); | ||||
|   | ||||
| @@ -10,16 +10,18 @@ import java.time.LocalDateTime; | ||||
| import java.time.ZoneId; | ||||
| 
 | ||||
| /** | ||||
|  * LocalDateTime反序列化规则 | ||||
|  * <p> | ||||
|  * 会将毫秒级时间戳反序列化为LocalDateTime | ||||
|  * 基于时间戳的 LocalDateTime 反序列化器 | ||||
|  * | ||||
|  * @author 老五 | ||||
|  */ | ||||
| public class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> { | ||||
| public class TimestampLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> { | ||||
| 
 | ||||
|     public static final LocalDateTimeDeserializer INSTANCE = new LocalDateTimeDeserializer(); | ||||
|     public static final TimestampLocalDateTimeDeserializer INSTANCE = new TimestampLocalDateTimeDeserializer(); | ||||
| 
 | ||||
|     @Override | ||||
|     public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { | ||||
|         // 将 Long 时间戳,转换为 LocalDateTime 对象 | ||||
|         return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault()); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @@ -9,16 +9,18 @@ import java.time.LocalDateTime; | ||||
| import java.time.ZoneId; | ||||
| 
 | ||||
| /** | ||||
|  * LocalDateTime序列化规则 | ||||
|  * <p> | ||||
|  * 会将LocalDateTime序列化为毫秒级时间戳 | ||||
|  * 基于时间戳的 LocalDateTime 序列化器 | ||||
|  * | ||||
|  * @author 老五 | ||||
|  */ | ||||
| public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> { | ||||
| public class TimestampLocalDateTimeSerializer extends JsonSerializer<LocalDateTime> { | ||||
| 
 | ||||
|     public static final LocalDateTimeSerializer INSTANCE = new LocalDateTimeSerializer(); | ||||
|     public static final TimestampLocalDateTimeSerializer INSTANCE = new TimestampLocalDateTimeSerializer(); | ||||
| 
 | ||||
|     @Override | ||||
|     public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { | ||||
|         // 将 LocalDateTime 对象,转换为 Long 时间戳 | ||||
|         gen.writeNumber(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV