我正在尝试将hashmap转换为json,同时过滤一些键。我试过和Jackson在一起,但结果总是有所有的关键。
Map<String, String> hashtable = new HashMap();
hashtable.put("KEY1", "VALUE1");
hashtable.put("KEY2", "VALUE2");
hashtable.put("KEY3", "VALUE3");
ObjectMapper objectMapper = new ObjectMapper();
FilterProvider filter = new SimpleFilterProvider().addFilter("filter", SimpleBeanPropertyFilter.filterOutAllExcept("KEY1"));
objectMapper.setFilterProvider(filter);
System.err.println(objectMapper.writeValueAsString(hashtable));
我的钥匙是动态的,有没有更有效的方法来做到这一点?
Jackson的过滤方法对我来说是完美的,因为我需要为同一个HashMap生成多个json的不同过滤器。和Jackson在一起有可能吗?
2条答案
按热度按时间4uqofj5v1#
Here是你的问题的答案。您应该创建不带任何字段的mixinSource类,并将其添加到objectMapper。然后,您可以动态过滤出Map
y4ekin9u2#
您可以设置包含
SimpleBeanPropertyFilter
的FilterProvider
。**注意:**在本例中,
validKeys
可以作为参数传递给createFilterProvider
,并存储在FilterProvider
上,而不是KeyFilter
驱动程序上。