我有一个带有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分析错误:无法反序列化COM...
的实例超出START_ARRAY标记;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化COM...
的实例超出START_ARRAY标记
我应该使用哪个restTempalte方法来获得正确的api响应?或者问题出在哪里?。谢谢!
您说API返回一个数组。
但是您的代码行restTemplate.getForObject(apiUrl,Someclass.class);
只能对单个Someclass对象工作。
您应该使用新的parameterizedTypeReference
以及exchange方法。
>
请参阅下面的链接
使用spring RestTemplate获取JSON对象列表
下面是POJO类: 主要功能如下:
我需要向网络服务发送帖子请求,但它在异常后返回。 实际服务器响应如下: 我根据以下内容发送请求 我的代码
我尝试使用jacksonapi解析json,并提供以下详细信息。但我错了。请查找以下代码和堆栈跟踪的详细信息。 JSON 控制器类 下面这个类是我的bean类。PublisheData.java 发布数据列表.java 我收到以下错误。
我能解决这个错误吗?当我想添加一个新对象时,会出现这种情况 “消息”:“JSON分析错误:无法反序列化实例脱离START_ARRAY内标识;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化实例脱离START_ARRAY内标识\n位于[源:(PushbackInputStream);行:1,列:1]”
问题内容: 我正在使用来自外部合作伙伴的API。不幸的是,返回的响应似乎没有固定的结构。理想情况下,API合同意味着它不会被违反,但是这种情况一直在发生。 无论如何,所以发生的事情是JSON响应中的字段主要是一个地图,但有时却是一个列表。 例如,假设以下是我通常得到的响应: 但是在极少数情况下,我会得到列表,而不是地图或其他违反合同的情况。 例如: 我正在使用杰克逊将此响应映射到POJO。在某些情
问题内容: 我正在尝试将json请求解析为模型。我不知道这段代码有什么问题。json的语法看起来正确,并且在Java模型上也有注释。我不知道为什么会出现如下错误: Java模型: 杰森代码: 问题答案: 您已声明为单个对象,但是将其作为JSON文档中多个对象的数组返回。 您的模型当前将parameters节点定义为一个对象: 这意味着您的模型对象需要一个如下所示的JSON文档: 但是在JSON文档