springboot项目接口给null给前端返回空字符串。
代码:
@Configuration public class JacksonConfig { @Bean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); List<MediaType> supported = new ArrayList<>(); supported.add(MediaType.APPLICATION_JSON_UTF8); mappingJackson2HttpMessageConverter.setSupportedMediaTypes(supported); ObjectMapper objectMapper = new ObjectMapper(); // null值的处理,必须要放在第一步,否则会将下面的日期格式化覆盖掉 // null ==> "" objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() { @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException { gen.writeString(""); } }); // 处理默认日期格式化:yyyy-MM-dd HH:mm:ss objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd")); mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper); return mappingJackson2HttpMessageConverter; } }
这种写法是正确的,还有种写法是返回objectMapper是无效的.打断点调试了,运行的时候,根本不会进来。