4

XML dataformat モジュールで Jackson 1.9.2 を使用しています。Jackson が配列、リスト、コレクションをシリアライズする方法を微調整する必要があります。

デフォルトではmyProperty、いくつかの数値を含む int 配列プロパティと呼ばれ、Jackson / XML は以下を生成します。

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

私が作成する必要があるのは次のとおりです。

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

JacksonXmlElementWrapperとの組み合わせを使用して、POJO ごとにこれを行うことができますJacksonXmlProperty

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

ただし、このソリューションでは、これらの注釈を POJO 内のすべての配列、リスト、コレクションに手動で適用する必要があります。はるかに優れたソリューションを使用すると、すべての配列、リスト、コレクション タイプに対してグローバルにソリューションを 1 回適用できます。そのようなソリューションを実装する方法についてのアイデアはありますか?

ありがとう!

4

2 に答える 2

1

XML モジュールが提供するサブクラスを作成し、AnnotationIntrospectorを検査するメソッドをオーバーライドして@JacksonXmlElementWrapper、任意のラッパー名を返すようにすることができます。

于 2012-10-16T00:28:57.353 に答える
0

JsonGeneratorグループがサポートする必要がある従来の形式の XML を生成するために、独自のファイルを作成することになりました。

Jackson XML dataformat モジュールを使用したかったのですが、これはより安全で、よりテストされており、より高速である可能性があります。残念ながら、StaxMan の提案を使用して解決策を見つけることができませんでした。

于 2012-10-17T03:50:34.090 に答える