代码先锋网 代码片段及技术文章聚合

springboot Jackson LocalDateTime反序列化失败的问题

技术标签: java


@Configuration
public class JacksonConfig {
	//配置文件里属性
   @Value("${spring.jackson.local-date-time-format:yyyy-MM-dd HH:mm:ss}")
   String localDateTimeFormat;
	//配置文件里属性
   @Value("${spring.jackson.local-date-format:yyyy-MM-dd}")
   String localDateFormat;
	//配置文件里属性
   @Value("${spring.jackson.local-time-format:HH:mm:ss}")
   String localTimeFormat;

   @Bean
   public ObjectMapper objectMapper() {
       ObjectMapper om = new ObjectMapper();
       JavaTimeModule javaTimeModule = new JavaTimeModule();
       //序列化
       javaTimeModule.addSerializer(LocalDateTime.class,
               new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(localDateTimeFormat)));
       javaTimeModule.addSerializer(LocalDate.class,
               new LocalDateSerializer(DateTimeFormatter.ofPattern(localDateFormat)));
       javaTimeModule.addSerializer(LocalTime.class,
               new LocalTimeSerializer(DateTimeFormatter.ofPattern(localTimeFormat)));
		//反序列化
       javaTimeModule.addDeserializer(LocalDateTime.class,
               new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(localDateTimeFormat)));
       javaTimeModule.addDeserializer(LocalDate.class,
               new LocalDateDeserializer(DateTimeFormatter.ofPattern(localDateFormat)));
       javaTimeModule.addDeserializer(LocalTime.class,
               new LocalTimeDeserializer(DateTimeFormatter.ofPattern(localTimeFormat)));
       om.registerModule(javaTimeModule);
       return om;
   }

}

实体类 不能加上@JsonFormat 注解

@Data
@TableName("am_contract")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "合同信息")
public class AmContract extends BaseEntity<AmContract> {
   private static final long serialVersionUID = 1L;

   /**
    * 主键
    */
   @TableId(type = IdType.ASSIGN_ID)
   @ApiModelProperty(value = "主键")
   private Long id;
   /**
    * 合同号
    */
   @ApiModelProperty(value = "合同号")
   private String no;
   /**
    * 签订时间
    */
   @ApiModelProperty(value = "签订时间")
   //不能加上@JsonFormat 注解
   //@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+8")
   private LocalDateTime signTime;
   /**
    * 到期时间
    */
   @ApiModelProperty(value = "到期时间")
//    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+8")
//    @JsonSerialize(using = LocalDateTimeSerializer.class)
//    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
   private LocalDateTime expireTime;
   /**
    * 录入时间
    */
   @ApiModelProperty(value = "录入时间")
//    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+8")
   private LocalDateTime recordTime;
   /**
    * 发货时间
    */
   @ApiModelProperty(value = "发货时间")
//    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+8")
   private LocalDateTime deliveryTime;

}
版权声明:本文为qq_37377082原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37377082/article/details/112994993

智能推荐

jackson序列化LocalDateTime

1.Java序列化工具用的是jackson,实体类上加注解,可以让Date序列化生效,但是LocalDateTime属性不生效 2.使LocalDateTime生效 依赖...

Jackson在springboot中LocalDateTime格式问题

Jackson在springboot中LocalDateTime的格式化   ------------------------------------------------------------------------------------------------------------------------------------------------------------...

解决Spring Web Jackson对RequestBody反序列化失败的问题

最近在用Spring Web做一些Restful API的实现试验,碰到了@RequestBody 的JSON无法被正常反序列化的问题。服务端的代码大致如下: 研究后发现,由于Aqua这个实体类缺少了默认的无参构造函数(如果自行添加了有参数的构造函数,默认的无参构造函数就需要手动添加),Spring Web默认使用的JSON序列化框架-Jackson就无法正常反序列化。此时服务器会返回400 Ba...

SpringBoot使用Jackson,全局反序列化去除字符串前后空格

方法一 继承SimpleModule 方法二、  ...

Jackson反序列化

jackson介绍         Jackson是一个能够将java对象序列化为JSON字符串,也能够将JSON字符串反序列化为java对象的框架。是基于Java平台的一套数据处理工具,被称为”最好的Java Json解析器”。它可以使我们高效、简便的处理json字符串。 序列化 序列化函数为...

猜你喜欢

springboot内置序列化工具Jackson

JackSon介绍 本文使用的JackSon版本为2.9.6。 JackSon是解析JSON和XML的一个框架,优点是简单易用,性能较高。 JackSon处理JSON的方式 JackSon提供了三种JSON的处理方式。分别是数据绑定,树模型,流式API。下面会分别介绍这三种方式。 完整数据绑定 简单数据绑定 简单数据绑定就是将json字符串映射为java核心的数据类型。 json类型 Java类型...

springboot Jackson 个性化序列化操作

文章目录 自定义类型序列化反序列化器 指定使用某一个序列化器的类 自定义类型序列化反序列化器 添加个性化操作类 添加 AutoConfiguration 类 指定使用某一个序列化器的类 添加 SimpleDeserializers 实现类 将实现类进行注册...

使用Jackson反序列化遇到的问题

最近在项目中需要使用Jackson把前台转来的字符转为对象,转换过程中发生了错误,报错如下 原因是需要转换成的目标对象有Date类型的属性,前台传来的是yyyy-MM-dd HH:mm:ss类型 而Jackson只支持以下四种 yyyy-MM-dd'T'HH:mm:ss.SSSZ yyyy-MM-dd'T'HH:mm:ss.SSS'Z' EEE, dd MMM yyyy HH:mm:ss zzz ...

SpringBoot Jackson的使用技巧

创建配置类 创建对象 创建Controller类: 返回值:...

springboot中jackson的使用

Json 是目前互联网应用使用最为广泛的信息交换格式之一。Spring Boot 内置了 Jackson。spring Boot 默认采用了 Jackson来处理诸如 @RequestBody @ResponseBody 1.测试类 2.转换类ObjectMapper 在jackson中主要用于json转换的主要是ObjectMapper 类。 3.测试 3.1 对象转json 结果: 3.2 m...