使用Jackson转换对象层次结构

时间:2013-09-30 07:21:56

标签: jackson

我想利用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,我相信valueToTree是如何工作的。

0 个答案:

没有答案