jackson 中對 null 的處理


前情提要:

在項目中如何將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":""}}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM