0
我一直在使用codehaus和下面的代碼來排除序列化JSON時的字段。Fasterxml ObjectMapper不排除JSON中的文件
ObjectMapper mapper = new ObjectMapper();
mapper.getSerializationConfig().addMixInAnnotations(Object.class, PropertyFilterMixIn.class);
SimpleBeanPropertyFilter propertyFilter = SimpleBeanPropertyFilter.serializeAllExcept(ignoreFieldNames);
FilterProvider simpleFilterProvider = new SimpleFilterProvider().addFilter("PropertyFilter", propertyFilter);
ObjectWriter writer = mapper.writer(simpleFilterProvider);
String jsonContent = writer.writeValueAsString(obj);
我升級到fasterxml和改變了代碼如下,
ObjectMapper mapper = new ObjectMapper();
mapper.addMixIn(Object.class, PropertyFilterMixIn.class);
SimpleBeanPropertyFilter propertyFilter = SimpleBeanPropertyFilter.serializeAllExcept(ignoreFieldNames);
FilterProvider simpleFilterProvider = new SimpleFilterProvider().addFilter("PropertyFilter", propertyFilter);
//mapper.getSerializationConfig().withFilters(simpleFilterProvider);
ObjectWriter writer = mapper.writer(simpleFilterProvider);
String jsonContent = writer.writeValueAsString(obj);
然而,上面的代碼並不如預期的工作。它不尊重所有的ignoreFieldNames,只是返回的對象中的所有字段(不排除在「ignoreFieldNames」中提到的字段(字符串數組)。
任何幫助將不勝感激。在
謝謝提前。
感謝您的回覆。 – KingKari
感謝您的回覆。我嘗試了全局mixin註釋,但它不起作用。我嘗試了註解方法(@JsonFilter(「PropertyFilter」)),它可以工作,但它不會排除層次結構中的字段,但是早先使用codehaus時,它將深層次地刪除字段中的字段。 – KingKari
org.springframework.http.converter.HttpMessageNotWritableException:我試圖將註釋添加到子實體類中,但是出現以下錯誤。 無法寫入內容:無法使用ID「PropertyFilter」解析PropertyFilter;沒有配置FilterProvider;嵌套的異常是com.fasterxml.jackson.databind.JsonMappingException:無法使用ID「PropertyFilter」解析PropertyFilter;沒有配置FilterProvider – KingKari