我想忽略像@JsonIgnoreProperties動態數量的參數
filtervalue0,filtervalue1,filtervalue2性質的數量(這是我從UI獲得)等
我做不過從UI
得到這個數也就是說,如果filterscount = 3 我知道,會有 filtervalue0,filtervalue1,filtervalue2
是否可以動態地有這樣的工作(即@JsonIgnoreProperties)
我想忽略像@JsonIgnoreProperties動態數量的參數
filtervalue0,filtervalue1,filtervalue2性質的數量(這是我從UI獲得)等
我做不過從UI
得到這個數也就是說,如果filterscount = 3 我知道,會有 filtervalue0,filtervalue1,filtervalue2
是否可以動態地有這樣的工作(即@JsonIgnoreProperties)
您可以使用@JsonFilter
動態過濾字段爲Serialization
或Deserialization
。
例如:
@JsonFilter("myFilter")
static class Bean {
public String filtervalue0 = "a";
public String filtervalue1 = "b";
public int filtercount = 1;
public int totalFilters = 2;
}
static void test() throws JsonProcessingException{
Bean value = new Bean();
ObjectMapper mapper = new ObjectMapper();
Set<String> filtersToExclude = new HashSet<>();
//logic for applying filter
for(int i=value.totalFilters-1; i>value.totalFilters-value.filtercount-1; i--){
filtersToExclude.add("filtervalue"+i);
}
//dynamic field filtering is provided by FilterProvider
FilterProvider filters = new SimpleFilterProvider().addFilter("myFilter",
SimpleBeanPropertyFilter.filterOutAllExcept(filtersToExclude));
String json = mapper.setFilterProvider(filters).writeValueAsString(value);
System.out.println(json); // prints {"filtervalue1":"b"}
}
public static void main(String[] args) throws JsonProcessingException {
test();
}
'@ JsonIgnoreProperties'不會做你多好。當你從UI獲得你的價值時,這個類已經被編譯。但看看['@ JsonFilter'](http://wiki.fasterxml.com/JacksonFeatureJsonFilter)。 – dhke