我使用Spring RestTemplate和Jackson 2.1,我试图反序列化下面的JSON字符串。而第一个数字是一个唯一的ID,因此这将是动态的:反序列化动态字段名称的嵌套JSON对象
{"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类得到实例化,但其所有属性保持为空。
当我简单地做:
{"name":"John","city":"Amsterdam","country":"The Netherlands"}
我能够deserialise与预期填充所有属性的UserDetails类,所以我的配置应该是为了。可能我需要在特定位置注释UserDetailsWrapper类,或者我需要一个自定义的反序列化器。我试了两次,但说实话,我不知道该怎么做。
如果有人能帮助我,我会再次成为一个快乐的人。
谢谢,这对我有所帮助。我发布了我的最终解决方案。 – Roan