Java Spring JSON分析错误:无法从START_ARRAY令牌

时间:2018-11-26 15:33:02

标签: java json spring rest jackson

我有一个带有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响应?或者问题出在哪里?。谢谢!

1 个答案:

答案 0 :(得分:1)

您说过API返回一个数组。

但是您的代码行restTemplate.getForObject(apiUrl ,Someclass.class); 仅适用于单个Someclass对象。

您应该将新的ParameterizedTypeReference<List<Someclass.class>>与交换方法一起使用。

请参阅下面的链接

Get list of JSON objects with Spring RestTemplate