私は初心者のJavaプログラマーなので、質問がばかげている場合は申し訳ありません。
次のような JSON オブジェクトがあります。
{
"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":{}
}
}
「 generated_name_2 」や「 n 」など、空の値が関連付けられているすべての要素を調べて削除したいと思います。これらの要素の名前が何になるかはわかりませんし、JSON ツリーにどの程度ネストされているかもわかりません。
再帰的なプログラムを書かなければならないことがわかりました。これが私が思いついたものです:
public static void cleanJsonNodes(ObjectNode myJsonNode){
for (JsonNode currentNode : myJsonNode){
if (currentNode.size() == 0){
myJsonNode.remove(currentNode);
} else {
cleanJsonNodes((ObjectNode)currentNode);
}
}
}
もちろん、これは機能しませんが、ここからどこへ行くべきかよくわからず、インターネットを探し回っても役に立ちませんでした。
誰か助けてください!