gpt4 book ai didi

java - 如何反序列化 JSON 数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:18:31 25 4
gpt4 key购买 nike

我在 CXF 中使用 Jackson 来序列化/反序列化数据。不幸的是,我在配置 CXF/Jackson 来反序列化 JSON 数组时遇到了困难。如果能帮助解决问题,我将不胜感激。

到目前为止,大部分 json 数据都是对象格式,即

{ "objectCollection": [ {...}, {...}, {...}... ] }

但是,有问题的 json 数据是以下形式:

[ {...}, {...}, {...} ]

Web 服务端点需要一个“GroupsDto”对象(见下文)有一个单一的属性 -- 组的集合,它是通过 JSON 数组传输。

@PATH(...)
public Response createGroups(GroupsDto groups) {
...
}

我按如下方式将 @JsonDeserialize 添加到 GroupsDto 集合属性,但它不起作用。我继续得到:“无法从 START_ARRAY token 中反序列化 GroupsDto 的实例”

public class GroupsDto {

private Collection<GroupDto> groups;

/**
* @return the groups
*/
@XmlElement(name="group")
@JsonDeserialize(contentAs=GroupDto.class)
public Collection<GroupDto> getGroups() {
return groups;
}
...
}

最佳答案

如果json数据是这样的形式:

[ {...}, {...}, {...} ]

你必须使用添加另一个类说“包装器”:

@JsonIgnoreProperties(ignoreUnknown = true)
public class ListDto extends ArrayList<GroupDto> {

public ListDto() {
}
}

并在反序列化时使用这个类。这种方法对我有用。

关于java - 如何反序列化 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11106379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com