我正在使用CXF中的Jackson来序列化/反序列化数据。不幸的是,我在配置CXF/Jackson以反序列化JSON数组方面遇到了困难。希望能帮助解决这个问题。
到目前为止,大多数JSON数据都是对象格式,即:
{ "objectCollection": [ {...}, {...}, {...}... ] }
然而,问题中的JSON数据是以下形式:
[ {...}, {...}, {...} ]
Web服务端点期望一个"GroupsDto"对象(请参见下文),它有一个单一的属性——一个组合集合,通过JSON数组传输。
我将@ JsonDeserialize添加到GroupsDto集合属性中,但它不起作用。 我仍然会收到“无法将START_ARRAY令牌反序列化为GroupsDto实例”的消息。
到目前为止,大多数JSON数据都是对象格式,即:
{ "objectCollection": [ {...}, {...}, {...}... ] }
然而,问题中的JSON数据是以下形式:
[ {...}, {...}, {...} ]
Web服务端点期望一个"GroupsDto"对象(请参见下文),它有一个单一的属性——一个组合集合,通过JSON数组传输。
@PATH(...)
public Response createGroups(GroupsDto groups) {
...
}
我将@ JsonDeserialize添加到GroupsDto集合属性中,但它不起作用。 我仍然会收到“无法将START_ARRAY令牌反序列化为GroupsDto实例”的消息。
public class GroupsDto {
private Collection<GroupDto> groups;
/**
* @return the groups
*/
@XmlElement(name="group")
@JsonDeserialize(contentAs=GroupDto.class)
public Collection<GroupDto> getGroups() {
return groups;
}
...
}