Jackson序列化和反序列化忽略字段操作
一、設(shè)置Jackson序列化時(shí)只包含不為空的字段
new ObjectMapper().setSerializationInclusion(Include.NON_NULL);
二、設(shè)置在反序列化時(shí)忽略在JSON字符串中存在,而在Java中不存在的屬性
new ObjectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
三、Jackson序列化時(shí)忽略字段的方式
1、方式一:FilterProvider
a)在需要忽略某些字段的bean上添加@JsonFilter("fieldFilter")
b)ObjectMapper設(shè)置過(guò)濾器
FilterProvider filterProvider = new SimpleFilterProvider(); SimpleBeanPropertyFilter fieldFilter = SimpleBeanPropertyFilter().serializeAllExcept("name"); filterProvider.addFilter("fieldFilter"); new ObjectMapper.setFilters(filterProvider );
2、方式二:使用@JsonIgnore
在需要忽略的字段上標(biāo)注注解@JsonIgnore,在序列化時(shí)即可忽略該字段
補(bǔ)充知識(shí):Jackson 序列化對(duì)象成 JSON 字符串,忽略部分字段(屬性)
1、屬性上 加 @JsonIgnore
這種方式作用于全局,只要是有這個(gè)對(duì)象的序列化,就會(huì)忽略注解過(guò)的這部分字段。
2、上面那種方式需要在 bean 上加注解,作用于全局,但是有的時(shí)候,我們可能不需要在所有情況下都忽略這個(gè)對(duì)象的這些字段,下面這種方式可以支持定制過(guò)濾方式。
public final class JsonFilterUtil { /** * 添加過(guò)濾的字段,這里過(guò)濾的是 ThinActivityInfo 這個(gè) bean 下的 * "startAt", "expiredAt", "extra" 三個(gè)字段 */ public static void addFilterForMapper(ObjectMapper mapper) { SimpleBeanPropertyFilter fieldFilter = SimpleBeanPropertyFilter.serializeAllExcept( Sets.newHashSet("startAt", "expiredAt", "extra")); SimpleFilterProvider filterProvider = new SimpleFilterProvider().addFilter("fieldFilter", fieldFilter); mapper.setFilterProvider(filterProvider).addMixIn(ThinActivityInfo.class, FieldFilterMixIn.class); } /** * 定義一個(gè)類或接口 */ @JsonFilter("fieldFilter") interface FieldFilterMixIn{ } }
以上這篇Jackson序列化和反序列化忽略字段操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java多線程教程之如何利用Future實(shí)現(xiàn)攜帶結(jié)果的任務(wù)
Callable與Future兩功能是Java?5版本中加入的,這篇文章主要給大家介紹了關(guān)于Java多線程教程之如何利用Future實(shí)現(xiàn)攜帶結(jié)果任務(wù)的相關(guān)資料,需要的朋友可以參考下2021-12-12Java調(diào)用opencv IDEA環(huán)境配置的教程詳解
這篇文章主要為大家詳細(xì)介紹了Java調(diào)用opencv IDEA環(huán)境配置的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03JFileChooser實(shí)現(xiàn)對(duì)選定文件夾內(nèi)圖片自動(dòng)播放和暫停播放實(shí)例代碼
這篇文章主要介紹了JFileChooser實(shí)現(xiàn)對(duì)選定文件夾內(nèi)圖片自動(dòng)播放和暫停播放實(shí)例代碼,需要的朋友可以參考下2017-04-04idea指定啟動(dòng)參數(shù)、環(huán)境變量的過(guò)程
這篇文章主要介紹了idea指定啟動(dòng)參數(shù)、環(huán)境變量的操作過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07