FastJson中有一个很重要的接口是ValueFilter
可以自定义过滤属性,来做序列化操作
这样可以让我们操作Map序列化的时候把null值给转为""字符串
public static void main(String[] args) { Map map = new HashMap<>(); map.put("xx",null); String json = JSONObject.toJSONString(map, new ValueFilter() { @Override public Object process(Object object, String name, Object value) { if(value == null){ return ""; } return value; } }); System.out.println(json); }
结果: {"xx":""}
除了这个功能它还可以根据属性名定制Value
如屏蔽电话号码、联系人信息等敏感字段
process(Object object, String name, Object value) 方法的三个参数分别为: 序列化对象、当前属性名、当前属性值