import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.annotate.JsonFilter;
import org.codehaus.jackson.map.ser.FilterProvider;
import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter;
import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
/**
*
* @author Administrator
*/
@JsonFilter("myFilter")
class Bean {
private String name = "2";
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private int age = 3;
public static void main(String[] args) throws IOException {
Bean value = new Bean();
// first, construct filter provider to exclude all properties but 'name', bind it as 'myFilter'
ObjectMapper mapper = new ObjectMapper();
FilterProvider filters = new SimpleFilterProvider().addFilter("myFilter",
SimpleBeanPropertyFilter.filterOutAllExcept(getFilter(value)));
// and then serialize using that filter provider:
String json = mapper.filteredWriter(filters).writeValueAsString(value);
System.out.println(json);
}
private static Set<String> getFilter(Bean value) {
Set<String> set = new HashSet();
if (value.getName() != null) {
set.add("name");
// set.add("age");
}
return set;
}
}
jackson dynamic filter
最新推荐文章于 2024-08-05 10:01:20 发布