一、自定义过滤器说明
PropertyPreFilter 根据PropertyName判断是否序列化
PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化
NameFilter 修改Key,如果需要修改Key,process返回值则可
ValueFilter 修改Value
BeforeFilter 序列化时在最前添加内容
AfterFilter 序列化时在最后添加内容
二、NameFilter使用demo
JSONObject.toJSONString(data, new NameFilter() {private String underscoreName(String name) {if (StringUtils.isEmpty(name)) {return "";}StringBuilder result = new StringBuilder();result.append(name.substring(0, 1).toLowerCase());for (int i = 1; i < name.length(); ++i) {String s = name.substring(i, i + 1);String slc = s.toLowerCase();if (!(s.equals(slc))) {result.append("_").append(slc);} else {result.append(s);}}return result.toString();}@Overridepublic String process(Object object, String name, Object value) {return underscoreName(name);}})
转换效果:将 property 中的 name = "submitOrder" 转换为 name = "sbumit_order"