java bean对象转换json对象时过滤空值
来源:互联网 发布:杭州淘宝类培训学校 编辑:程序博客网 时间:2024/05/16 12:26
由于从数据库获取到的总是有空值或者”“的情况,而且从数据库获取到数据封装到java中,再转换成json数据格式,这种事情已经司空见惯了。
但是在某些特定的场合下json数据中空值或者”“的会影响项目的运行,查错的情况下也不直观。例如下面这种情况下
上图只是json的一小部分,后面还有很多没有截出来。写过微信公众号的应该知道这是自定义菜单的json数据格式,但是其中有些属性是多余的。所以空值和”“还有空list都需要从该json数据段中去除。
我处理json是用json-lib包。以下是获取数据到输出的步骤
- 从数据库中获取javabean数据
- 创建JsonConfig对象
- 创建PropertyFilter匿名内部类,并设定规则
- 把PropertyFilter对象填充到JsonConfig对象中
- javabean转换为json
- 输出json
其中创建PropertyFilter匿名内部类,并设定规则是重中之重,PropertyFilter是一个接口,里面只有一个apply方法,返回值是boolean,返回true时过滤该属性。PropertyFilter源码如下
JsonObject中调用的代码如下
当没有设置JsonPropertyFilter时,跳过该代码段。如果设置了,就调用apply方法,返回false时,跳过该代码段,当apply方法返回true时跳出该循环(即不解析该属性,直接处理下一属性)。
完整代码
@Test public void createMenuTest(){ CustomMenuService customMenuService = (CustomMenuService) context.getBean("customMenuService"); List<CustomMenuCreate> menus = customMenuService.getCreateMenu(); //设置过滤json格式 JsonConfig jsonConfig = new JsonConfig(); PropertyFilter filter = new PropertyFilter() { public boolean apply(Object object, String fieldName, Object fieldValue) { if(fieldValue instanceof List){ List<Object> list = (List<Object>) fieldValue; if (list.size()==0) { return true; } } return null == fieldValue || "".equals(fieldValue); } }; jsonConfig.setJsonPropertyFilter(filter); JSONArray jsonArray = JSONArray.fromObject(menus,jsonConfig); JSONObject jsonObject = new JSONObject(); jsonObject.put("button", jsonArray); System.out.println(jsonArray.toString()); }
0 0
- java bean对象转换json对象时过滤空值
- 将实体类Bean转换为json对象的时候过滤null空值
- 将java对象(bean)转换成json
- Java中Json转换Bean对象并忽略大小写!
- json解析-----json对象转换成Bean对象
- json自动转换成bean对象时Timestamp的问题!
- json与Bean对象互相转换
- 如何将bean转换为json对象
- android/java中把对象、对象bean、Collection以及字符串转换成Json格式数据
- json解析-----字符对象转换成Bean对象
- 使用json-lib把JSON对象转换成java bean list的例子
- java值对象和Json数据转换
- java值对象和Json数据转换
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- Java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- Java bean对象返回数据Json格式化
- 邮件反伪造&增加可行度防分为垃圾邮件的两种方式SPF&DKIM
- android微信摇一摇(抽奖)
- Git用户手册--分布式 Git
- 欢迎使用CSDN-markdown编辑器
- Android AIDL 与 Service
- java bean对象转换json对象时过滤空值
- 在Ubuntu16.04安装OpenCV3.1并实现USB摄像头图像采集
- Leetcode 257. Binary Tree Paths (Easy) (cpp)
- 机器分配-分组背包&&线性动态规划
- javascript继承详解(一):前世今生
- Vacations【贪心】
- [Rails]route.rb理解积累
- yum和rpm的一些命令
- 第114课加强版:SparkStreaming+Kafka+createDirectStream+KafkaOffsetMonitor解决内幕