技术标签: 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;
}
1.Java序列化工具用的是jackson,实体类上加注解,可以让Date序列化生效,但是LocalDateTime属性不生效 2.使LocalDateTime生效 依赖...
Jackson在springboot中LocalDateTime的格式化 ------------------------------------------------------------------------------------------------------------------------------------------------------------...
最近在用Spring Web做一些Restful API的实现试验,碰到了@RequestBody 的JSON无法被正常反序列化的问题。服务端的代码大致如下: 研究后发现,由于Aqua这个实体类缺少了默认的无参构造函数(如果自行添加了有参数的构造函数,默认的无参构造函数就需要手动添加),Spring Web默认使用的JSON序列化框架-Jackson就无法正常反序列化。此时服务器会返回400 Ba...
方法一 继承SimpleModule 方法二、 ...
jackson介绍 Jackson是一个能够将java对象序列化为JSON字符串,也能够将JSON字符串反序列化为java对象的框架。是基于Java平台的一套数据处理工具,被称为”最好的Java Json解析器”。它可以使我们高效、简便的处理json字符串。 序列化 序列化函数为...
JackSon介绍 本文使用的JackSon版本为2.9.6。 JackSon是解析JSON和XML的一个框架,优点是简单易用,性能较高。 JackSon处理JSON的方式 JackSon提供了三种JSON的处理方式。分别是数据绑定,树模型,流式API。下面会分别介绍这三种方式。 完整数据绑定 简单数据绑定 简单数据绑定就是将json字符串映射为java核心的数据类型。 json类型 Java类型...
文章目录 自定义类型序列化反序列化器 指定使用某一个序列化器的类 自定义类型序列化反序列化器 添加个性化操作类 添加 AutoConfiguration 类 指定使用某一个序列化器的类 添加 SimpleDeserializers 实现类 将实现类进行注册...
最近在项目中需要使用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 ...
创建配置类 创建对象 创建Controller类: 返回值:...
Json 是目前互联网应用使用最为广泛的信息交换格式之一。Spring Boot 内置了 Jackson。spring Boot 默认采用了 Jackson来处理诸如 @RequestBody @ResponseBody 1.测试类 2.转换类ObjectMapper 在jackson中主要用于json转换的主要是ObjectMapper 类。 3.测试 3.1 对象转json 结果: 3.2 m...