阿里巴巴的fastjson 转化时 有空数组的情况,有时候我们不想要这个空数组展示例如
class User{
private String userName;
private Long[] roleIds;
}
User user = new User()
user.setUserName("张三")
String userJsonStr = JSON.toJSONString(user);
此时 userJsonStr 是
{
userName:"张三",
roleIds:[]
}
空数组roleIds的情况我们不想转换, 我们自定义一个filter
package com.ruoyi.utils;
import com.alibaba.fastjson.serializer.ValueFilter;
import java.util.List;
public class JSONFilter implements ValueFilter{
@Override
public Object process(Object object, String name, Object value) {
if (value == null) {
return null;
}
if(value instanceof String && ((String) value).isEmpty()){
return null;
}
if(value instanceof List && ((List) value).size() == 0){
return null;
}
if(value instanceof Object[] && ((Object[]) value).length == 0){
return null;
}
return value;
}
}
然后调用
class User{
private String userName;
private Long[] roleIds;
}
User user = new User()
user.setUserName("张三")
String userJsonStr = JSON.toJSONString(user,new JSONFilter());
然后生成的userJsonStr是
{
userName:"张三"
}