解决Long类型在前端、后端传输精度丢失问题
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 38 39 40 41 42 | @Configuration public class JacksonConfiguration { /** * DateTime格式化字符串 */ private static final String DEFAULT_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss" ; /** * Date格式化字符串 */ private static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd" ; /** * Time格式化字符串 */ private static final String DEFAULT_TIME_PATTERN = "HH:mm:ss" ; private static final String DEFAULT_TIME_ZONE = "GMT+8" ; /** * Jackson序列化和反序列化转换器,用于转换Post请求体中的json以及将对象序列化为返回响应的json */ @Bean public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() { DateFormat dateTimeDf = DateUtil.newSimpleFormat(DEFAULT_DATETIME_PATTERN, Locale.CHINA, TimeZone.getTimeZone(DEFAULT_TIME_ZONE)); DateTimeFormatter dateTimeDtf = DateTimeFormatter.ofPattern(DEFAULT_DATETIME_PATTERN).withZone(ZoneId.of(DEFAULT_TIME_ZONE)); DateTimeFormatter dateDtf = DateTimeFormatter.ofPattern(DEFAULT_DATE_PATTERN).withZone(ZoneId.of(DEFAULT_TIME_ZONE)); DateTimeFormatter timeDtf = DateTimeFormatter.ofPattern(DEFAULT_TIME_PATTERN).withZone(ZoneId.of(DEFAULT_TIME_ZONE)); return builder -> builder .serializerByType(LocalDateTime. class , new LocalDateTimeSerializer(dateTimeDtf)) .serializerByType(LocalDate. class , new LocalDateSerializer(dateDtf)) .serializerByType(LocalTime. class , new LocalTimeSerializer(timeDtf)) .serializerByType(Date. class , new DateSerializer( false , dateTimeDf)) .deserializerByType(LocalDateTime. class , new LocalDateTimeDeserializer(dateTimeDtf)) .deserializerByType(LocalDate. class , new LocalDateDeserializer(dateDtf)) .deserializerByType(LocalTime. class , new LocalTimeDeserializer(timeDtf)) .deserializerByType(Date. class , new DateDeserializers.DateDeserializer(DateDeserializers.DateDeserializer.instance, dateTimeDf, DEFAULT_DATETIME_PATTERN)) .serializerByType(Long.TYPE, ToStringSerializer.instance) .serializerByType(Long. class , ToStringSerializer.instance); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2020-04-24 Java中的锁分类与使用