两种方式,本质都是通过反射解决。
1、先把json拿到,然后转成对象来处理。
Class<?> bodyClass = requestObject.getClass();
Field[] declaredFields = bodyClass.getDeclaredFields();
for (Field declaredField : declaredFields) {
// 这个一定要设置,不设置直接报错,除非你的类属性不是private,都是public修饰
// 报错原因 https://blog.csdn.net/MovemOemVeovE/article/details/134072922
declaredField.setAccessible(true);
Object anObject = declaredField.get(requestObject);
if ("".equals(anObject)) {
declaredField.set(requestObject, null);
}
}
2、com.alibaba.fastjson
的SerializeFilter
下有几个Filter
子类,可以结合自己实际需求进行使用。
ValueFilter valueFilter = (obj, name, value) -> {
if ("".equals(value)) {
return null;
}
return value;
};
String jsonString = JSONObject.toJSONString(requestObject, valueFilter);