springboot 將對象轉化成json對象返回給前端,是通過多個消息轉換器配合完成的
但是有些時候,默認的轉化格式未必符合我們的要求,這個時候就需要進行自定義消息轉換器
只需要在@Configuration的類中添加消息轉化器的@bean加入到Spring容器,就會在spring啟動時被Spring Boot自動加入到容器中。
框架在對消息進行轉換時就不會使用默認的轉換器,而是使用咱們提供的bean進行處理
需要注意的是,一個轉換器只有一個bean會起作用,當轉換器重復加到容器中時,只有第一個會起作用
@Bean public MappingJackson2HttpMessageConverter longToStringConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); ObjectMapper mapper = new ObjectMapper(); //Long 轉String SimpleModule simpleModule = new SimpleModule(); simpleModule.addSerializer(Long.class, ToStringSerializer.instance); simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); mapper.registerModule(simpleModule); //Date格式 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); converter.setObjectMapper(mapper); return converter; }
這是一個示例, 會將對象中的Long類型轉換成String返回,同時返回規定格式的日期
如果要對返回消息的編碼格式做處理,就需要用到另外一個轉換器

如果某個字段不想返回,再對象屬性上面加上@JsonIgnore即可

除了這種方式,還可以在繼承WebMvcConfigurerAdapter的類中重寫(覆蓋)configureMessageConverters方法,也能實現這種效果
