前情提要:
在項目中如何將null值轉變為空字符串呢?
@Configuration
public class JacksonConfig {
@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString("");
}
});
return objectMapper;
}
}
然后我們修改一下上面返回 map 的接口,將幾個值改成 null 測試一下:
@RequestMapping("/map")
public Map<String, Object> getMap() {
Map<String, Object> map = new HashMap<>(3);
User user = new User(1, "小劉", null);
map.put("作者信息", user);
return map;
}
重啟項目,再次輸入:localhost:8080/json/map,可以看到 jackson 已經將所有
null 字段轉成了空字符串了。
{"作者信息":{"id":1,"username":"小劉","password":""}}