我有一个带有restTemplate调用的方法,如下所示:
restTemplate.getForObject(apiUrl ,Someclass.class);
Someclass.class:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Imp implements Serializable {
@JsonProperty("Id")
private String Id;
@JsonProperty("ReportId")
private String ReportId;
@JsonProperty("Title")
private String Title;
@JsonProperty("Name")
private String Name;
@JsonProperty("Uri")
private String Uri;
}
API返回一个数组,我收到的错误是:
org.springframework.web.client.RestClientException:提取类型[class ...]和内容类型[application / json; charset = utf-8]的响应时出错;嵌套异常是org.springframework.http.converter.HttpMessageNotReadableException:JSON解析错误:无法从START_ARRAY令牌中反序列化com...
实例;嵌套异常是com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从START_ARRAY令牌中反序列化com...
实例
我应该使用哪种restTempalte方法来获得正确的api响应?或者问题出在哪里?。谢谢!
答案 0 :(得分:1)
您说过API返回一个数组。
但是您的代码行restTemplate.getForObject(apiUrl ,Someclass.class);
仅适用于单个Someclass对象。
您应该将新的ParameterizedTypeReference<List<Someclass.class>>
与交换方法一起使用。
请参阅下面的链接