自定义要转换的值,比如使用fastJson将null值转空串""
使用fastjson序列化对象时,可以添加 值过滤器(ValueFilter),以此来对序列化出来的值做统一处理,步骤如下:
实现com.alibaba.fastjson.serializer.ValueFilter接口,
实现其Object process(Object object, String name, Object value)方法,
根据需要修改返回的值。
调用fastjson序列化对象时,使用此filter
实现ValueFilter接口:
public class SimpleValueFilter implements ValueFilter {
public Object process(Object object, String name, Object value) {
// 只要字段名中包含mobile,则值输出为一串星号
if (name.toLowerCase().contains("mobile")) {
return "";
}
return value;
}
}
在序列化时使用值过滤器:
public class Main {
public static void main(String[] args) {
MyObject obj = new MyObject();
obj.setName("YR");
obj.setMobile("15977198020");
obj.setUserMobile("15869198021");
System.out.println(JSON.toJSONString(obj, new SimpleValueFilter()));
}
}
输出结果:
{"mobile":"","name":"YR","userMobile":""}