Wie Entferne ich leere json-Knoten in Java mit Jackson?

Ich bin ein Anfang java-Programmierer, so tut es mir Leid wenn meine Frage dumm.

Habe ich ein JSON-Objekt, das aussieht wie dieses:

{
"element1" : {
    "generated_name_1": {
        "a" : {"isReady":false}
    },
    "generated_name_2":{},
    "generated_name_3":{},
    "generated_name_4":{}
},
"element2" : {
    "generated_name_5" : {
        "a" : {"isReady":false},
        "g" : {"isReady":false}
    }
},
"element3" : { 
    "a" : { "isReady":false},
    "n":{}
}
}

Möchte ich gehen Sie durch und löschen jedes element einen leeren Wert zugeordnet, wie "generated_name_2" und "n". Ich habe keine Ahnung, was die Namen der Elemente werden würde, und ich habe keine Ahnung, wie weit verschachtelt in den JSON-Baum es ist.

Ich, dass ich schreiben Sie ein Rekursives Programm, und das ist, was ich kam mit:

public static void cleanJsonNodes(ObjectNode myJsonNode){
    for (JsonNode currentNode : myJsonNode){
        if (currentNode.size() == 0){
            myJsonNode.remove(currentNode);
        } else {
            cleanJsonNodes((ObjectNode)currentNode);
        }
    }
}

Natürlich, dies funktioniert nicht, aber ich bin mir nicht wirklich sicher, wohin Sie gehen von hier und ich habe schon das internet durchforstet ohne Erfolg.

Bitte mir jemand helfen!

InformationsquelleAutor user2842643 | 2013-10-03
Schreibe einen Kommentar