详解Java去除json数据中的null空值问题
1、描述
@JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理。
2、使用
用注解的方式放在标记类或者属性
@JsonInclude(JsonInclude.Include.NON_NULL) publicclassUserimplementsSerializable{ privateStringusername; privateStringpassword; @JsonInclude(JsonInclude.Include.NON_NULL) privateStringtoken; }
用配置文件的方式全局配置(可能会影响到其他某些服务接口),例SpringBoot的application.yml
spring: jackson: default-property-inclusion:non_null
3、示例
- 使用前:{"username":"admin","password":"admin123","token":null}
- 使用后:{"username":"admin","password":"admin123"}
PS:Java递归去除Json中的空值
packagecom.dunyun.openapi.util.json; importjava.util.ArrayList; importjava.util.List; importcom.alibaba.fastjson.JSONArray; importcom.alibaba.fastjson.JSONObject; importcom.dunyun.platform.util.StringUtil; publicclassRemoveNullAttr{ publicstaticvoidmain(String[]args){ Strings="{\"employees\":[{\"firstName\":\"\",\"lastName\":\"Doe\"},{\"firstName\":\"\",\"lastName\":\"Smith\"},{\"firstName\":\"Peter\",\"lastName\":\"Jones\"}]}"; Stringa="{\"firstName\":\"John\",\"lastName\":\"\"}"; Stringb="{\"firstName\":\"\",\"lastName\":\"Doe\"}"; Stringtest="{\"ka\":\"va\",\"kb\":{\"kbk\":\"kbv\",\"kbkk\":\"\",\"kbkkk\":{\"aaa\":\"bbb\",\"bbb\":\"\"},\"suzu\":[{\"sz\":\"sz\",\"szk\":\"\"}]},\"kc\":\"kcv\"}"; JSONObjectjs=JSONObject.parseObject(test); RemoveNullAttrr=newRemoveNullAttr(); Objecto=r.traverseJson(js); System.out.println(o); } privateObjecttraverseJson(Objectjson){ //checknull if(json==null){ returnnull; } try{ if(jsoninstanceofJSONObject){//ifjsonisaMap JSONObjectjsonObj=(JSONObject)json; ListkeyList=newArrayList(); for(Stringk:jsonObj.keySet()){ Stringvalue=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(Stringk:keyList){ jsonObj.remove(k); } returnjsonObj; } elseif(jsoninstanceofJSONArray){//ifjsonisanArray JSONArrayjsonArr=(JSONArray)json; intlen=jsonArr.size(); for(inti=0;i以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。