我的服务器响应了我的json:
{
"clients": {
"0": {
"id": 12370691,
"fio": ""
},
"2": {
"id": 12384782,
"fio": "name2"
},
"3": {
"id": 12389624,
"fio": "Name3"
}
}
}
由于jsons,我得到了pojos。
第一个Pojo包含对象地图
@Data
public class GetClientsResponse {
@JsonProperty("clients")
Map<String, ClientResponse> clientMap;
public List<ClientResponse> getListOfValues() {
if (Objects.nonNull(this.clientMap)) {
return this.clientMap.entrySet()
.stream()
.map(entry -> entry.getValue())
.collect(Collectors.toList());
}
return Collections.emptyList();
}
}
和ClientResponse类
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ClientResponse {
@JsonProperty("id")
private int clientId;
@JsonProperty("fio")
private String fullName;
}
我有下一个错误:
出现意外错误(type = Bad Request,status = 400)。 JSON 解析错误:无法反序列化java.util.LinkedHashMap的实例 超出START_ARRAY标记;嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:不能 从START_ARRAY反序列化java.util.LinkedHashMap的实例 令牌在[来源:java.io.PushbackInputStream@2a8f551b;行:1, 专栏:12](通过参考链: com.lineup.flatsender.model.dto.response.avers.getclinets.GetClientsResponse [&#34;客户&#34;]) 块引用
有人可以解释一下这个问题吗?因为它在1个月前工作,我没有问题。 我使用import org.springframework.web.client.RestOperations;
答案 0 :(得分:-1)
最近服务有变化吗? 400响应表明服务器无法理解您的请求。
你能发布你得到的实际JSON吗?该错误表明您正在使用JSON数组返回某些内容,但您发布的内容并未显示数组
答案 1 :(得分:-1)
JsonMappingException: out of START_ARRAY token
异常为thrown
,因为它期待Object {}
,而它在响应中找到了Array [{}]
。
因此,可能会更改来自webservice的响应,并且您的客户端数据现在将作为Array而不是object返回。