springboot resttemplate jackson generic fastjson generic

jackson deserialization generics

Springboot uses jackson serialization and deserialization by default. When RestTemplatereceiving responses, sometimes it needs to be deserialized into generics. Observe exchangethe method of RestTemplate. There is a ParameterizedTypeReferenceparameter to support generics

public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity,
			ParameterizedTypeReference<T> responseType);

Like this

// 泛型为接口返回数据的类型
        ParameterizedTypeReference<CommonResult<User>> responseBodyType =
                new ParameterizedTypeReference<CommonResult<User>>() {
                };
        ResponseEntity<CommonResult<User>> responseEntity = restTemplate.exchange(uri,
                HttpMethod.POST, request, responseBodyType);

Note that exchangemethods must be used, only the exchange method has org.springframework.core.ParameterizedTypeReferenceparameters.

fastjson deserialization generics

usecom.alibaba.fastjson.TypeReference#TypeReference()

//String jsonStr = ""
JSON.parseObject(jsonStr,new TypeReference<CommonResult<User>>(){
      })

Guess you like

Origin blog.csdn.net/wangjun5159/article/details/130711207