gpt4 book ai didi

list - 将输入流转换为对象列表

转载 作者:行者123 更新时间:2023-12-02 20:30:52 25 4
gpt4 key购买 nike

我必须制作一个 jar 来访问 API 来获取人员详细信息列表,该列表基本上有四个字段:- id、name、salary、department。

我正在使用 apache httpclient 执行 get 请求,该请求在访问 API 时为我提供了一个 httpentity。

httpentity提供了获取response内容的方法,但它返回的是inputstream。

在通过 inputreader 读取此输入流并将其打印出来时,我确认它为我提供了一个人员详细信息列表。

但我不知道如何将其转换为人员详细信息列表。

这就是 PersonDetails 对象:-

    public class PersonDetails {
private UUID id;
private String name;
private String department;
private Integer salary;

public UUID getId() {
return id;
}

public void setId(UUID id) {
this.id = id;
}

public String getName() {
return name;
}

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

public String getDepartment() {
return department;
}

public void setDepartment(String department) {
this.department = department;
}

public Integer getSalary() {
return salary;
}

public void setSalary(Integer salary) {
this.salary = salary;
}

@Override
public String toString() {
return "PersonDetails{" +
"id=" + id +
", name='" + name + '\'' +
", department='" + department + '\'' +
", salary=" + salary +
'}';
}

}

这是我的 GetRequest 代码:-

    public static void main(String[] args) {
List<PersonDetails> personDetails = new ArrayList<>();
HttpClient httpClient = HttpClientBuilder.create().build();
String url = "/api/person-details";
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream content = httpEntity.getContent();
} catch (IOException e) {
e.printStackTrace();
}
}

我想将此内容转换为人员详细信息列表。

有人可以帮助我吗?我听说过 Jackson,但不知道如何使用它。

最佳答案

首先我创建一个默认集合类型

CollectionType collectionType = mapper.getTypeFactory().constructCollectionType(List.class, PersonDetails.class);

List<PersonDetails> personDetails = mapper.readValue(content,collectionType);

其中内容是输入流。我在某人的博客上找到的。

关于list - 将输入流转换为对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48802352/

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