package com.alibaba.json.bvt.serializer.filters; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.JSONSerializer; import com.alibaba.fastjson.serializer.PropertyPreFilter; public class PropertyPathTest2 extends TestCase { public void test_path() throws Exception { Person p1 = new Person(); p1.setId(100); Person c1 = new Person(); c1.setId(1000); Person c2 = new Person(); c2.setId(2000); p1.getChildren().add(c1); p1.getChildren().add(c2); Assert.assertEquals("{\"children\":[{\"id\":1000},{\"id\":2000}],\"id\":100}", JSON.toJSONString(p1, new MyPropertyPreFilter())); } public static class MyPropertyPreFilter implements PropertyPreFilter { public boolean apply(JSONSerializer serializer, Object source, String name) { String path = serializer.getContext().toString() + "." + name; if (path.endsWith("].children")) { return false; } return true; } } public static class Person { private int id; private List<Person> children = new ArrayList<Person>(); public int getId() { return id; } public void setId(int id) { this.id = id; } public List<Person> getChildren() { return children; } public void setChildren(List<Person> children) { this.children = children; } } }