gpt4 book ai didi

java - 如何将 Jersey REST 服务的 JSON 响应反序列化为 Java 对象集合

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

我编写的客户端使用 Jersey Client API 向 REST 服务发出 GET 请求。响应是对象的集合,我需要反序列化它。这是我的代码:

    ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING,
Boolean.TRUE);
Client client = Client.create(clientConfig);
WebResource r = client
.resource("http://localhost:8080/rest/gadgets");

和表示“小工具”模型的类(用@XmlRootElement 注释以进行 JAXB 处理):

    @XmlRootElement
public class Gadget {

private String url;
private String title;
private String name;

public Gadget() {
}


public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}


public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

如果 response 只是 Gadget 副本,而不是集合,则看起来可能是

Gadget result = r.get(Gadget.class);

但响应中的 JSON 包含一个小工具列表,我需要将其读取到 java 集合。有点像

List<Gadget> result = r.get(List<Gadget>.class);

不编译。有人可以帮我吗?我不想使用任何额外的库,我相信这可以使用 jersey-json.jar 和 JAXB 来完成,但不知道如何。

最佳答案

我想你想使用 GenericType 的匿名子类:

r.get(new GenericType<List<Gadget>>() {});

List<Gadget>.class由于类型删除,将无法工作。

关于java - 如何将 Jersey REST 服务的 JSON 响应反序列化为 Java 对象集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339910/

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