genéricos de deserialización de jackson
Springboot utiliza la serialización y deserialización jackson de forma predeterminada. Al RestTemplate
recibir respuestas, a veces es necesario deserializarlas en genéricos. Observe exchange
el método de RestTemplate. Hay un ParameterizedTypeReference
parámetro para admitir genéricos.
public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType);
Como esto
// 泛型为接口返回数据的类型
ParameterizedTypeReference<CommonResult<User>> responseBodyType =
new ParameterizedTypeReference<CommonResult<User>>() {
};
ResponseEntity<CommonResult<User>> responseEntity = restTemplate.exchange(uri,
HttpMethod.POST, request, responseBodyType);
Tenga en cuenta que exchange
se deben usar métodos, solo el método de intercambio tiene org.springframework.core.ParameterizedTypeReference
parámetros.
fastjson deserializa genéricos
usarcom.alibaba.fastjson.TypeReference#TypeReference()
//String jsonStr = ""
JSON.parseObject(jsonStr,new TypeReference<CommonResult<User>>(){
})