jackson dynamic filter

来源:互联网 发布:json嵌套解析 编辑:程序博客网 时间:2024/05/16 08:32
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;    }}


原创粉丝点击