14

Spring rest テンプレートと jackson json プロバイダーを使用して、json をシリアライズ/デシリアライズしています。私のサービスから、私はそれを受け取ったときにクライアント側でHashSetに変換されるlinkedHashSetを送り返します。このため、要素の挿入順序が失われます。これは Set の jackson json プロバイダーのデフォルトの実装ですか? 適切な実装に逆シリアル化できるように、他の方法はありますか? トリッキーになると思いますが、皆さんからのインプットは高く評価されます。

ありがとう

4

2 に答える 2

42

@JsonDeserializeJackson がアノテーションで使用する具象クラスを指定できます。ただ置く:

@JsonDeserialize(as=LinkedHashSet.class)

プロパティのセッター。

于 2013-08-14T20:11:03.037 に答える
1

それはすべて、結果の型を何にするかによって異なります。データを にマップするように要求するとLinkedHashSet、JSON 配列がそれにマップされます。java.lang.Object(または) のようなあいまいな型を使用すると、JSON 配列java.util.Collectionが得られます。ArrayListJSON は (デフォルトでは) オブジェクトではなくデータであるため、使用した Java 型に関するメタデータはデフォルトでは渡されないことに注意してください。必要に応じてそれを行う方法はありますが、通常は期待される型を提供するだけで済みます。

于 2013-08-14T19:40:37.943 に答える