package com.alibaba.json.bvt.serializer.filters; import java.util.HashMap; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.ValueFilter; import junit.framework.TestCase; public class MTopFilterTest extends TestCase { public void test_0() throws Exception { Model model = new Model(); model.id = 1001; model.name = "yongbo"; model.user = new Person(); model.user.personId = 2002; final HashMap<String, Object> values = new HashMap<String, Object>(); ValueFilter valueFilter = new ValueFilter() { @Override public Object process(Object object, String name, Object value) { values.put(name, value); return value; } }; String jsonString = JSON.toJSONString(model, valueFilter); Assert.assertEquals("{\"id\":1001,\"name\":\"yongbo\",\"user\":{\"personId\":2002}}", jsonString); Assert.assertEquals(4, values.size()); Assert.assertEquals(model.id, values.get("id")); Assert.assertSame(model.name, values.get("name")); Assert.assertEquals(model.user, values.get("user")); Assert.assertEquals(model.user.personId, values.get("personId")); } public static class Model { private int id; private String name; private Person user; public int getId() { return id; } public void setId(int id) { this.id = id; } public Person getUser() { return user; } public void setUser(Person user) { this.user = user; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public static class Person { private int personId; public int getPersonId() { return personId; } public void setPersonId(int personId) { this.personId = personId; } } }