0

java/json オブジェクトをマーシャリング/アンマーシャリングするために、jackson で resttemplate を使用しています。シリアル化/逆シリアル化するための最良の戦略は何ですか

キーが文字列で値がカスタム オブジェクトの ArrayList などのさまざまな型になるような、キーと値のペアを含む可能性がある Map

このサイトでいくつかの調査を行ったところ、@JsonAnyGetter @JsonAnySetter をこの状況で使用できることがわかりましたが、resttemplate getforobject メソッドのコンテキストで逆シリアル化する方法がわかりませんでした。逆シリアル化を行うには、カスタム httpmessageconverter を作成する必要がありますか? 前もって感謝します。

4

1 に答える 1

0

次のような応答があると仮定します。

{ key1: "something", key2: 3}

これらのフィールドを持つ DTO が必要になります。

class CustomResponse {
    private String key1;
    private long key2;
}

上記のゲッターとセッターを必ず追加してください。

リクエストを作成します。

restTemplate.postForObject(url, requestObject, CustomResponse.class);

リクエスト オブジェクトは、上記のような DTO にすることも、単に配列とマップを使用して requestObject を構築することもできます。

この注釈を応答 DTO に追加する必要があります。これにより、応答に DTO でマップされないフィールドがある場合、それらは無視されます。

@JsonIgnoreProperties(ignoreUnknown = true)
于 2012-12-21T11:19:10.540 に答える