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!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich will nur die Richtung zeigen, wie zu tun, dass mit Json:
Wenn
JSONObject
Lasten{}
seine Länge ist 0, daher können Sie es löschen.Als Seite beachten, können Sie diese Methode verwenden, in der Rekursion wie:
Ich didn T fügen Sie keine überprüfung, aber für sicher , Sie müssen überprüfen, ob Instanz
jsonObj.getMap()
...Ich habe es noch nicht getestet, aber Sie wollen wahrscheinlich etwas wie das:
Überprüfen Sie diese
Wie Sie nicht senden Sie eine leere Sammlung in jackson
Leere Knoten in Json können Sie
http://jackson.codehaus.org/1.1.2/javadoc/org/codehaus/jackson/node/ObjectNode.html#remove(java.lang.String)
Entfernen JSON-Elemente mit jackson
Diese kann Ihr problem lösen.