我正在使用Jackson 1.9.2和XML dataformat module。我需要调整Jackson序列化数组,列表和集合的方式。
默认情况下,使用名为myProperty
的int数组属性包含几个数字,Jackson / XML正在生成以下内容:
<myProperty>
<myProperty>1</myProperty>
<myProperty>2</myProperty>
</myProperty>
我需要制作的是:
<myProperty>
<item>1</item>
<item>2</item>
</myProperty>
我可以使用JacksonXmlElementWrapper
和JacksonXmlProperty
的组合在每个POJO的基础上执行此操作,如下所示:
@JacksonXmlElementWrapper(localname='myProperty')
@JacksonXmlProperty(localname='item')
public int[] myProperty;
但是,此解决方案需要我手动将这些注释应用于我的POJO中的每个数组,列表和集合。一个更好的解决方案将允许我在全局范围内为所有阵列,列表,集合类型应用一次解决方案。关于如何实施这样的解决方案的任何想法?
谢谢!
答案 0 :(得分:1)
您可以使用XML模块提供的子类AnnotationIntrospector
,并覆盖检查@JacksonXmlElementWrapper
的方法,并使其返回您想要的任何包装名称。
答案 1 :(得分:0)
我最终创建了自己的JsonGenerator
来为我的小组需要支持的旧格式生成XML。
我本来希望使用Jackson XML数据格式模块,它提供更多安全性,更多测试,并且可能更快。不幸的是,我无法使用StaxMan的建议找到解决方案。