我正在通过REST服务获取一些数据,但在反序列化响应时出现以下错误:@SerializedName("ResultSet Output")
这是我的代码:
response = restTemplate.exchange(requestUrl, HttpMethod.GET, request, HolderCollectionWrapper.class);
public class HolderCollectionWrapper {
@SerializedName("ResultSet Output")
private List<Holder> holders;
public List<Holder> getHolders() {
return holders;
}
public void setHolders(List<Holder> holders) {
this.holders = holders;
}
}
这是我得到的JSON:
{
"ResultSet Output": [
{...}, {...}, {...}
]
}
尽管有@SerializedName("ResultSet Output")
,它还是不起作用,为什么?
2条答案
按热度按时间qvk1mo1f1#
@SerializedName
是一个gson注解,而您正在使用Jackson库进行序列化。字段名的Jackson注解为
@JsonProperty
请尝试:
fruv7luv2#
发生这种情况是因为
SerializedName("ResultSet Output")
gson注解指示holders
将使用 ResultSet Output 名称进行序列化,就像您发布的json示例一样;要用Jackson反序列化它,必须使用JsonProperty
注解,指定应用于setter的 ResultSet Output 名称,以避免与用于序列化的gson库发生可能的冲突: