使用以下GET请求:
ResponseEntity<String> entity = restTemplate.exchange(uri, HttpMethod.GET, requestEntity, String.class );
entity.getBody();
返回一个JSON字符串,如下所示:
{"userRegistrations":[{"userRegistrationToken":"fb398972","userRegistrationTokenAlias":"87f15f8"}]}
但我想用一个没有字符串的对象来完成这项工作.因此,使用下面的代码,我收到一个UserRegistrations对象,其中包含一个null UserTokenResponse List
ResponseEntity<UserRegistrations> entity = restTemplate.exchange(uri, HttpMethod.GET, requestEntity, UserRegistrations.class );
entity.getBody();
我的域类看起来像这样:
public class UserRegistrations {
List<UserTokenResponse> userRegistrationList;
//..getters and setters
}
public class UserTokenResponse {
private String userRegistrationToken;
private String userRegistrationTokenAlias;
//getters and setters
}
我错过了什么?
最佳答案 假设您正在使用Jackson,RestTemplate会自动注册MappingJackson2HttpMessageConverter,它将基础ObjectMapper配置为忽略未知属性.
JSON对象具有名为userRegistrations的单个属性,而您的Java类具有名为userRegistrationList的单个属性.他们不匹配.
它们需要匹配,或者您需要添加属性的@JsonProperty注释,以使Jackson将其序列化/解析为userRegistrations.