{
"k1" : "v1",
"k2" : ["v2", "v3", "", {"k21": "v21", "k22": ""}],
"k3" : {"k4" : "v4", "k5" : ["v5", "v6", null], "k6": {"k7" : "v7", "k8" : ""}},
"k9" : [],
"k10" : null,
"k11" : [23, true, false, "hello"]
}
What I have tried:
public void filterJson(JsonObject jsonObject){
Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
Iterator<Map.Entry<String,JsonElement>>iterator=entrySet.iterator();
while(iterator.hasNext()){
Map.Entry<String, JsonElement> entry = iterator.next();
if (entry.getValue().isJsonArray()){
JsonArray jsonArray = entry.getValue().getAsJsonArray();
for(JsonElement ele : jsonArray){
if(ele.isJsonObject()){
filterJson(ele.getAsJsonObject());
}
}
}
if(entry.getValue().isJsonObject()){
filterJson(entry.getValue().getAsJsonObject());
}
if (!entry.getValue().isJsonObject() && !entry.getValue().isJsonArray()){
if(entry.getValue().isJsonNull() || entry.getValue().equals("null")
|| entry.getValue().getAsString().trim().equals("")){
iterator.remove();
}
}
}
}