2012-04-02 87 views
0

我正在使用resttemplate與傑克遜marshall/unmarshall java/json對象。 什麼是序列化的最佳策略/反序列化其餘模板序列化/反序列化與variosu鍵,值對映射對象

可能包含鍵值對,這樣的鍵是字符串,值可以 是多種類型,例如自定義的ArrayList對象

我做了一些研究地圖在這個網站上,發現使用@JsonAnyGetter @JsonAnySetter 可以用在這種情況下,但並不確定如何在resttemplate getforobject方法的上下文 中反序列化。將不得不寫一個自定義httpmessageconverter 來完成反序列化? 在此先感謝。

回答

0

我們假設你有一個這樣的迴應:

{ key1: "something", key2: 3} 

你會希望有一個DTO有這些領域:

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

請務必添加getter和setter以上。

現在提出請求:

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

請求對象可以是DTO像上面或只是使用數組和地圖構建requestObject。

您應該將此註釋添加到您的答覆DTO中。這可以確保如果響應中的字段未映射到DTO中,它們將被忽略。

@JsonIgnoreProperties(ignoreUnknown = true)