ジャクソン逆シリアル化ジェネリックス
Springboot はデフォルトでジャクソンのシリアル化と逆シリアル化を使用します。RestTemplate
応答を受信するときに、ジェネリックスに逆シリアル化する必要がある場合がありますexchange
。RestTemplate のメソッドを確認してください。ParameterizedTypeReference
ジェネリックスをサポートするパラメーターがあります。
public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType);
このような
// 泛型为接口返回数据的类型
ParameterizedTypeReference<CommonResult<User>> responseBodyType =
new ParameterizedTypeReference<CommonResult<User>>() {
};
ResponseEntity<CommonResult<User>> responseEntity = restTemplate.exchange(uri,
HttpMethod.POST, request, responseBodyType);
メソッドを使用する必要があることに注意してくださいexchange
。パラメータを持つのは交換メソッドのみですorg.springframework.core.ParameterizedTypeReference
。
fastjson はジェネリックを逆シリアル化します
使用com.alibaba.fastjson.TypeReference#TypeReference()
//String jsonStr = ""
JSON.parseObject(jsonStr,new TypeReference<CommonResult<User>>(){
})