1、描述
@JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理。
2、使用
用注解的方式放在标记类或者属性
@JsonInclude(JsonInclude.Include.NON_NULL) public class User implements Serializable { private String username; private String password; @JsonInclude(JsonInclude.Include.NON_NULL) private String token; }
用配置文件的方式全局配置(可能会影响到其他某些服务接口),例SpringBoot的application.yml
spring: jackson: default-property-inclusion: non_null
3、示例
PS:Java递归去除Json中的空值
package com.dunyun.openapi.util.json; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dunyun.platform.util.StringUtil; public class RemoveNullAttr { public static void main(String[] args){ String s="{\"employees\": [{ \"firstName\":\"\" , \"lastName\":\"Doe\" },{ \"firstName\":\"\" , \"lastName\":\"Smith\" },{ \"firstName\":\"Peter\" , \"lastName\":\"Jones\" }]}"; String a="{ \"firstName\":\"John\" , \"lastName\":\"\" }"; String b="{ \"firstName\":\"\" , \"lastName\":\"Doe\" }"; String test="{\"ka\":\"va\",\"kb\":{\"kbk\":\"kbv\",\"kbkk\":\"\",\"kbkkk\":{\"aaa\":\"bbb\",\"bbb\":\"\"},\"suzu\":[{\"sz\":\"sz\",\"szk\":\"\"}]},\"kc\":\"kcv\"}"; JSONObject js=JSONObject.parseObject(test); RemoveNullAttr r=new RemoveNullAttr(); Object o=r.traverseJson(js); System.out.println(o); } private Object traverseJson(Object json) { // check null if (json == null) { return null; } try { if (json instanceof JSONObject) {// if json is a Map JSONObject jsonObj = (JSONObject)json; List keyList=new ArrayList(); for(String k:jsonObj.keySet()){ String value=jsonObj.get(k).toString(); if(StringUtil.isEmpty(value)){ keyList.add(k); //jsonObj.remove(k); }else{ if(isJsonObj(value)){ jsonObj.put(k, traverseJson(JSONObject.parseObject(value))); }else{if(isJsonArr(value)){ //value=; jsonObj.put(k, traverseJson(JSONArray.parseArray(value))) ; } } } } for(String k:keyList){ jsonObj.remove(k); } return jsonObj; } else if (json instanceof JSONArray) {// if json is an Array JSONArray jsonArr = (JSONArray)json; int len = jsonArr.size(); for (int i = 0; i < len; ++i) { // TODO: do something here jsonArr.set(i, traverseJson(jsonArr.get(i))); } // return retArr; // // } else {// if json is just a raw element // // // TODO: do something here // return json; return jsonArr; // } } catch (Exception e) { e.printStackTrace();// deal Exception or throw it } return null; } public boolean isJsonObj(Object o){ try{ JSONObject js=JSONObject.parseObject(o.toString()); return true; }catch(Exception e){ return false; } } public boolean isJsonArr(Object o){ try{ JSONArray js=JSONArray.parseArray(o.toString()); return true; }catch(Exception e){ return false; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍详解MySQL中的NULL值,包括了详解MySQL中的NULL值的使用技巧和注意事项,需要的朋友参考一下 我们已经看到使用WHERE子句的SQL SELECT命令来从MySQL表获取数据。但是,当我们试图给的条件比较字段或列的值为NULL,它不能正常工作。 为了处理这种情况,MySQL提供了三大运算符 IS NULL: 此运算符返回true,当列的值是NULL。 IS
本文向大家介绍详解javascript数组去重问题,包括了详解javascript数组去重问题的使用技巧和注意事项,需要的朋友参考一下 首先,我想到的是另建一个结果数组,用来存储原始数组中不重复的数据。遍历原始数组依次跟结果数组中的元素进行比较,检测是否重复。于是乎,我写出了如下代码A: 写完之后,忽然想起来前几天刚看的ECMAScript 5中的数组方法indexOf 可以检索数组元素。于是我又
本文向大家介绍php数组去除空值函数分享,包括了php数组去除空值函数分享的使用技巧和注意事项,需要的朋友参考一下 对于一个一维的php数组,如何清除其中值为空的元素呢?直接的办法是foreach循环一下,一个个判断排除。不过这个方法还是略显复杂,下面分享一下今天看到的一个方法,非常简洁 是不是非常实用的函数呢,希望大家能够喜欢。
本文向大家介绍Java中关于Null的9个解释(Java Null详解),包括了Java中关于Null的9个解释(Java Null详解)的使用技巧和注意事项,需要的朋友参考一下 对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道
字符串中存在的首尾空格一般情况下都没有任何意义,如字符串“ Hello ”,但是这些空格会影响到字符串的操作,如连接字符串或比较字符串等,所以应该去掉字符串中的首尾空格,这需要使用 String 类提供的 trim() 方法。 trim() 方法的语法形式如下: 使用 trim() 方法的示例如下: 从该示例中可以看出,字符串中的每个空格占一个位置,直接影响了计算字符串的长度。 如果不确定要操作的
本文向大家介绍java json不生成null或者空字符串属性(详解),包括了java json不生成null或者空字符串属性(详解)的使用技巧和注意事项,需要的朋友参考一下 大家平时用java对象转json字符串。null或者空字符串属性是不需要生成到json字符串里面的。 如下方式生成,没有使用的属性也会生成json字符串属性。 Gson使用: 如果大数据传输,或者存储到数据库,合理生成jso