• TypeReference使用笔记


    1. JSON字符串反序列化对象(单个对象)

      @Slf4j
      public class TypeReferenceTest{
          @Test
          public void parseObject(){
              String jsonContent = "{\"code\":\"200\",\"message\":\"error message\",\"data\":\"hello world\"}" ;
              TypeReference<RestResponse<String>> typeReference = new TypeReference<String>(){} ;
              RestResponse<String> response = JSON.parseObject(jsonContent, typeReference);
              log.info("====> response : {}", response);
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
    2. ObjectMapper字符串反序列化(集合)

      @SpringBootTest(classes = DynamicNacosApplication.class)
      public class ObjectMapperTest {
          @Autowired
          private ObjectMapper objectMapper ;
      
          @Test
          public void collectionType() throws JsonProcessingException {
              String content = "...." ;
              CollectionType collectionType = objectMapper.getTypeFactory()
                      .constructCollectionType(ArrayList.class, RouteDefinition.class);
              List<RouteDefinition> routeDefinitions = objectMapper.readValue(content, collectionType);
              routeDefinitions.forEach(item -> log.info("item : {}", item));
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
    3. ObjectMapper字符串反序列化(集合)

      @SpringBootTest(classes = DynamicNacosApplication.class)
      public class ObjectMapperTest {
          @Autowired
          private ObjectMapper objectMapper ;
      
          @Test
          public void collectionType() throws JsonProcessingException {
              String content = "...." ;
       	   // other method
              List<RouteDefinition> infoCmds = 
       			objectMapper.readValue(jsonData, new TypeReference<List<RouteDefinition>>(){});
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
    4. RestTemplate返回值泛型转换

      @Slf4j
      public class ParameterizedTypeReferenceTest {
          private RestTemplate restTemplate = new RestTemplate();
      
          @Test
          public void exchange(){
              String url = "http://localhost:8080/user-service/hello/index" ;
              ParameterizedTypeReference<RestResponse<String>> typeReference =
                      new ParameterizedTypeReference<>() {} ;
              ResponseEntity<RestResponse<String>> exchange = 
                   restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(null), typeReference);
              RestResponse<String> retValue = exchange.getBody();
              log.info("ret value : {}", retValue);
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
  • 相关阅读:
    【献给过去的自己】栈实现计算器(C语言)
    Vue生成带图片logo以及文字的二维码组件,可下载二维码为图片,附组件调用代码--核心qrcode
    小工具 - Python图片转PDF文件
    Hadoop:模板虚拟机的创建
    LeetCode简单题之出现最频繁的偶数元素
    java计算机毕业设计高考报考指南网站MyBatis+系统+LW文档+源码+调试部署
    基本通信设备
    蓝桥杯B组C++省赛——飞机降落(DFS)
    第七章 查找 二、顺序查找
    SQL练习 2022/7/2
  • 原文地址:https://blog.csdn.net/yichengjie_c/article/details/132942315