我正在使用Spring RestTemplate和Jackson 2.1,尝试反序列化下面的JSON字符串。其中第一个数字是唯一的ID,因此会动态变化:
{"2127388":{"name":"John","city":"Amsterdam","country":"The Netherlands"}}
使用 RestTemplate,我做如下操作:
final ResponseEntity<UserDetailsWrapper> re = restTemplate.getForEntity(apiUrl, UserDetailsWrapper.class);
我拥有的POJO如下:
class UserDetailsWrapper {
private long uniqueId; // [getter + setter]
private UserDetails userDetails; // [getter + setter]
// no args constructor + all properties constructor
}
class UserDetails {
private String name; // [getter + setter]
private String city; // [getter + setter]
private String country; // [getter + setter]
// no args constructor + all properties constructor
}
UserDetailsWrapper类被实例化,但其所有属性仍为null。
当我简单地执行以下操作时:
{"name":"John","city":"Amsterdam","country":"The Netherlands"}
我可以将数据反序列化到UserDetails类中,并填充所有预期的属性,所以我的配置应该没问题。可能我需要在特定位置注释UserDetailsWrapper类,或者需要一个自定义的反序列化器。我尝试了两种方法,但说实话我不知道该怎么做。如果有人能帮助我解决这个问题,我会再次感到幸福。