0

我有一个配置文件可以有以下几行:
exclude employee.dept.*
include student.dept.*

因此,根据该文件中的值,我需要在序列化 JSON 中抑制或包含这些属性。我查看了实现 BeanPropertyFilter 但这并没有给我有关父节点的详细信息,即我只知道我正在序列化 dept.deptCode 但我不知道 dept 节点的父节点,它可能是员工或学生. 知道如何实现该功能吗?

4

1 回答 1

1

您最好的选择可能是使用树模型;也就是说,将 JSON 读取为JsonNode

JsonNode root = new ObjectMapper().readTree(jsonSource);

然后处理过滤。尝试使用配置文件进行数据绑定可能是解决此问题的更困难的方法。

请注意,您可以根据需要轻松地在JsonNode和 POJO 类型之间进行转换:

MyObject ob = mapper.treeToValue(root, MyObject.class);
JsonNode tree = mapper.valueToTree(ob);

因此可以使用 JSON 树完成转换和翻译,但您仍然可以使用 POJO 作为源或目标。

于 2013-09-06T05:41:16.693 回答