Java工具:Java递归去除Json字符串空值(key和value)

转:

Java工具:Java递归去除Json字符串空值(key和value)

package com.tydic.crm.order.query.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.Iterator;
import java.util.Set;
public class JsonDealUtils {

    public static JSONObject getNoNullValue(String json) {
        JSONObject objTem=JSON.parseObject(json);
        JSONObject objRel=JSON.parseObject(json);
        return deal(objTem,objRel);
    }

    private static JSONObject deal(JSONObject objTem,JSONObject objRel) {
        Set<String> keySet = objTem.keySet();
        Iterator<String> iterator = keySet.iterator();
        while(iterator.hasNext()) {
            String temp =  iterator.next();
            Object objR = objTem.get(temp);
            if(temp==null||"".equals(temp)||"null".equals(temp)) {                
                objRel.remove(temp);
                 continue;
            }
            if(objR==null||"".equals(objR.toString())||"null".equals(objR.toString())||"[]".equals(objR.toString())||"{}".equals(objR.toString())) {
                objRel.remove(temp);
                continue;
            }
            if(objR instanceof JSONObject) {
                JSONObject j=(JSONObject)objR;
                JSONObject object2 = (JSONObject)objRel.get(temp);
                 deal(j,object2);
                 continue;
            }
            if(objR instanceof JSONArray) {
                JSONArray jsonArray = objTem.getJSONArray(temp);
                JSONArray jsonArray2 = objRel.getJSONArray(temp);
                for(int i=0;i<jsonArray.size();i++) {
                     deal(jsonArray.getJSONObject(i),jsonArray2.getJSONObject(i));
                }
            }
        }
        return objRel;
    }

    
}
原文地址:https://www.cnblogs.com/libin6505/p/14832957.html