4

我将 Jackson 1.9.2 与XML 数据格式模块一起使用。我需要调整 Jackson 序列化数组、列表、集合的方式。

默认情况下,使用myProperty包含几个数字的 int 数组属性,Jackson / XML 生成以下内容:

<myProperty>
  <myProperty>1</myProperty>
  <myProperty>2</myProperty>
</myProperty>

我需要生产的是:

<myProperty>
  <item>1</item>
  <item>2</item>
</myProperty>

我可以使用以下组合在每个 POJO 的基础上执行此JacksonXmlElementWrapper操作JacksonXmlProperty

@JacksonXmlElementWrapper(localname='myProperty')
@JacksonXmlProperty(localname='item')
public int[] myProperty;

但是,此解决方案需要我手动将这些注释应用于我的 POJO 中的每个数组、列表、集合。一个更好的解决方案将允许我在全局范围内为所有数组、列表、集合类型应用一个解决方案。关于如何实施这种解决方案的任何想法?

谢谢!

4

2 回答 2

1

您可以继承 XML 模块提供的子类AnnotationIntrospector,并覆盖检查的方法@JacksonXmlElementWrapper,并使其返回您想要的任何包装器名称。

于 2012-10-16T00:28:57.353 回答
0

我最终创建了自己JsonGenerator的 XML 来为我的团队需要支持的旧格式生成 XML。

我本来希望使用 Jackson XML 数据格式模块,它提供更高的安全性、更多的测试,并且可能更快。不幸的是,我无法使用 StaxMan 的建议找到解决方案。

于 2012-10-17T03:50:34.090 回答