1

我想利用 Jackson 基础设施将无类型的 Map/List 结构转换为 POJO 层次结构。我需要的非常接近

jsonNode = objectMapper.valueToTree(MapHierarchy) followed by
pojoTree = objectMapper.treeToValue(jsonNode)

...除了我需要即时修改字段名称:在源 Map/List 层次结构中找到的名称被声明为 POJO 类上的自定义注释。这是一个完整的例子:

public class Cat
{
   @MapField("attr:col")
   @JsonProperty("color")
   private String _color;
}

...和源地图:

{
   "attr:col" -> "black"
}

...我想从中获得一个 Cat 实例。

我确信必须有一种优雅的方式来使用 Jackson API 来实现这一点,但我不太清楚如何......有什么建议吗?显然我不想创建第二个并行类层次结构只是为了通过注解来描述 Map 的反序列化。一个额外的好处是能够在不通过字符串化的 JSon 的情况下转换 Map,我相信这就是 valueToTree 的工作方式。

4

0 回答 0