FastJson 不输出空数组

在我们平时开发过程中,Java bean 转JSON的时候有一些空数组,导致转换后的多了很多 “无用” 的数据。

{

  student:{

  "name":"江南也少",

  "score": []

  }

}

这个时候我们希望这个没有参加考试,也没有分的同学,不用输出score,该怎么办呢?

我们可以定义一个Filter类

public class NotWriteEmptyList implement{

            @Override
            public boolean apply(Object o, String key, Object value) {
                if (value == null) {
                    return false;
                }
                if(value instanceof  String && ((String) value).isEmpty()){
                    return false;
                }
                if(value instanceof List && ((List) value).size() == 0){
                    return  false;
                }
                return true;
            }
       
}


在我们同String的时候new 一个Filter 传进去就OK了

JSON.toJSONString(entity, new NotWriteEmptyList());

这样就会得到如下的结果:

{

  student:{

  "name":"江南也少"

  }

}

 

原文地址:https://www.cnblogs.com/sandyyeh/p/13942685.html