我想利用 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 的工作方式。