说明
在用SpringBoot做API输出的时候,我们希望输出的对象是转换成JSON格式的,另外如果对象中有日期类型,希望能够对日期进行统一的格式化。
实现
首先对SpringBoot项目进行配置(jsonMapper),新建MyConfiguration.java (如果有类似的配置文件,就只要修改就可以了)
@Configuration public class MyConfiguration { @Bean(name = "jsonMapper") @Primary public ObjectMapper jsonMapper() { return new CustomObjectMapper(); } }
自定义ObjectMapper,新增CustomObjectMapper.java
其中就可以设置针对Date类型的,要转成json自定义序列化方法,这里还针对JSON的格式做了一些定制,如下:
public class CustomObjectMapper extends ObjectMapper { public CustomObjectMapper() { this.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); this.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); SimpleModule module = new SimpleModule("JSONModule", new Version(2, 0, 0, null, null, null)); module.addSerializer(Date.class, new CustDateSerializer()); // module.addDeserializer(Date.class, new DateSerializer()); // Add more here ... registerModule(module); } }
新增CustDateSerializer.java
/** * @description 自定义返回JSON 数据格中日期格式化处理 */ public class CustDateSerializer extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException { jsonGenerator.writeString(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(value)); } }
文章评论