详解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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。