我们有一个POJO,其中包含一个集合并对其进行注释:
@XmlElement(name = "<MyId")
@XmlElementWrapper(name = "MyIds")
private final Set<Long> myIds;
我们在CXF中使用JacksonJaxbJsonProvider在我们的REST服务中进行编组。
我们看到的问题是,如果有人请求application / xml,则响应是正确的,因为用户得到:
<MyIds>
<MyId>123</MyId>
<MyId>456</MyId>
...
</MyIds>
但是当请求application / json时,用户会得到(注意单数字段名称):
{
"MyId" : [123, 456, ...]
}
我想知道的是,是否有办法在JSON响应中创建复数,如果有,那么如何。
感觉这可能是杰克逊的错误,但可能有一个很好的理由发生这种情况。此外,我意识到如果每个人都使用相同的POJO,我们就不必关心编组文本的样子,但在这种情况下,其中一个消费者无法使用我们的POJO。
答案 0 :(得分:0)
如果您使用的是Jackson 2.1或更高版本,则可以启用一项功能来获取您想要的行为
ObjectMapper m = new ObjectMapper()
m.configure(MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME, true);