java Jackson递归替换匹配字段
考虑到以下情况(从POJO序列化),我需要根据字段名加密字段列表的每次出现,而不管字段的深度如何。例如,我想对文档的某些部分进行加密以供存储(密码和quantityOrdered)
我已经处理了加密部分,但是正在寻找一种好的方法来遍历JsonNode,找到匹配字段的每个匹配项并对其进行加密/替换
隐藏(例如,通过@JsonIgnore无法解决问题,因为我需要存储数据)。这是用于某些系统数据的脱机文件备份
请注意,在我想要匹配的字段中(Passbrow和quantityOrdered),它们的类型不同,密码在不同级别上多次出现
{
"name":"foo",
"id":"123456",
"password":"bar",
"communities": [
{
"name":"administrators",
"location":"xyz",
"password":"baz"
},
{
"name":"members",
"location":"xyz",
"password":"baz"
}
],
"quantityOrdered": 35
}
我看到的使用树模型的例子暗示了对文档结构的了解。我看到了JsonNode。getElements()可以用于获取名称的所有元素,但它只返回值,而不返回键。有这方面经验的人能推荐一个好的方法吗
# 1 楼答案
您可以使用自定义JsonFilter并覆盖serializeAsField方法