我正在尝试List<Pojo>通过Spring Rest模板封送列表:对象.
我可以传递简单的Pojo对象,但我找不到任何描述如何发送List<Pojo>对象的文档.
Spring正在使用Jackson JSON来实现HttpMessageConverter.杰克逊的文档涵盖了这一点:
除了绑定到POJO和"简单"类型之外,还有一个附加变体:绑定到通用(类型)容器的变体.这种情况需要特殊处理,因为所谓的类型擦除(Java用于以某种向后兼容的方式实现泛型),这会阻止您使用类似
Collection<String>.class(不能编译)的东西.因此,如果要将数据绑定到a
Map<String,User>,则需要使用:
Map<String,User> result = mapper.readValue(src, new TypeReference<Map<String,User>>() {});其中
TypeReference只需要通过通用类型定义(经由anynomous内部类在这种情况下):在重要的部分是<Map<String,User>>限定类型结合.
这可以在Spring模板中完成吗?我瞥了一眼代码,它让我不是,但也许我只是不知道一些技巧.
解
由于下面的有用答案,最终解决方案是不发送List,而是发送一个简单扩展List的对象,例如:class PojoList extends ArrayList<Pojo>.Spring可以成功封送这个Object,它完成了与发送一样的东西List<Pojo>,尽管它不是一个简洁的解决方案.我还在春季发布了一个JIRA,以便他们在HttpMessageConverter界面中解决这个缺点.