【问题标题】:ResponseEntity returns null list of objectsResponseEntity 返回空对象列表
【发布时间】:2019-11-29 11:46:44
【问题描述】:

我可以使用返回 json 对象的 API。我想要做的是获取对象列表。以下是我的代码:

ResponseEntity<List<Entity>> responseEntity = restTemplate.exchange(dataUrl, HttpMethod.GET, entity,new ParameterizedTypeReference<List<Entity>>() {});

其中我期望使用来自 json 的数据填充列表的对象的实体。但是当我打印它时,来自 Entity 的所有字段都设置了空值。我错过了什么?

谢谢 萨赫

【问题讨论】:

    标签: spring rest api spring-boot spring-mvc


    【解决方案1】:

    你可以试试这个

    ResponseEntity<List<Entity>> responseEntity = restTemplate.exchange(dataUrl, HttpMethod.GET, entity, Entity.class);
    

    附言抱歉没有评论的声誉:(

    【讨论】:

      【解决方案2】:

      为什么不使用restTemplate.getForEntity

      ResponseEntity<Entity[]> response = restTemplate.getForEntity(dataUrl, Entity[].class)
      Entity[] entities = response.getBody();
      

      上述情况返回一个Entity[]类型的对象,它是一个数组。

      如果你想使用List接口,你需要创建一个包装类。

      包装器:

      public class EntityList {
          private List<Entity> entities;
      
          public EntityList() {
              entities= new ArrayList<>();
          }
      
          // standard constructor and getter/setter
      }
      

      RestTemplate 电话:

      这里你将使用restTemplate.getForObject

      EntityList response = restTemplate.getForObject(dataUrl, EntityList.class);
      List<Entity> entities = response.getEntities();
      

      更简单的替代方法是使用List.class 作为getForObject 的返回类型。

      List<Entity> response= rest.getForObject(dataUrl, List.class);
      

      【讨论】:

      • 感谢马修斯的回复。我可能正在使用上述解决方案,因为我必须在请求中传递标头。
      【解决方案3】:

      由于缺少 json 示例,很难给出正确答案。您能否提供一个将返回的 json 示例。

      【讨论】:

        【解决方案4】:

        已解决

        下面是我所做的代码更改,它返回了正确的实体对象列表。

        ResponseEntity<Entity[]> responseEntity = restTemplate.exchange(dataUrl, HttpMethod.GET, entity, Entity[].class);
        

        即使进行此更改后也没有真正解决我的问题。我还必须添加

        @JsonProperty("fieldName") on each field in Entity class which had to match Json properties. 
        

        【讨论】:

          猜你喜欢
          • 2020-03-28
          • 1970-01-01
          • 2018-01-11
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          • 1970-01-01
          • 1970-01-01
          • 2015-05-11
          相关资源
          最近更新 更多