1. 程式人生 > >Jackson序列化和反序列化忽略欄位

Jackson序列化和反序列化忽略欄位

一、設定Jackson序列化時只包含不為空的欄位

new ObjectMapper().setSerializationInclusion(Include.NON_NULL);

二、設定在反序列化時忽略在JSON字串中存在,而在Java中不存在的屬性

new ObjectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

三、Jackson序列化時忽略欄位的方式

1、方式一:FilterProvider

a)在需要忽略某些欄位的bean上新增@JsonFilter("fieldFilter")

b)ObjectMapper設定過濾器

   FilterProvider filterProvider = new SimpleFilterProvider();

   SimpleBeanPropertyFilter fieldFilter = SimpleBeanPropertyFilter().serializeAllExcept("name");
   filterProvider.addFilter("fieldFilter");

   new ObjectMapper.setFilters(filterProvider );

2、方式二:使用@JsonIgnore

   在需要忽略的欄位上標註註解@JsonIgnore,在序列化時即可忽略該欄位