1 回答

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
JsonNode正如托馬斯在評(píng)論中提到的那樣,我會(huì)依靠它get和remove方法。就像是:
public void remove(String json, List<String> path) {
JsonNode root = new ObjectMapper.readTree(json);
int lastIndex = path.size() - 1;
for (int i = 0; i < lastIndex; i++) {
root = root.get(path.get(i));
}
root = root.remove(path.get(lastIndex));
return root;
}
您可以使用子列表或流進(jìn)一步優(yōu)化迭代,并且您可能希望處理路徑實(shí)際上并未通向給定 json 中的任何內(nèi)容的情況。
注意:如果您需要在任意對(duì)象內(nèi)的任意路徑上執(zhí)行此行為,則此選項(xiàng)有效 -JsonNode非常適合您不知道會(huì)得到什么的情況。如果你確實(shí)知道你會(huì)得到什么(從同一個(gè)對(duì)象中刪除的總是相同的東西),那么使用映射器集將 JSON 反序列化為對(duì)象可能是更好的形式,以忽略對(duì)象中缺少但存在于中的字段JSON。
添加回答
舉報(bào)