将inputstream转换为Objects列表

时间:2018-02-15 07:55:38

标签: list jackson inputstream apache-httpclient-4.x

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

我正在使用apache httpclient来执行get请求,这使我在使用API​​时获得了一个httpsntity。

httpentity提供了一种获取响应内容的方法,但它返回了输入流。

通过输入读取器读取此输入流并将其打印出来后,我确认它正在给我一个人员详细信息列表。

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

那是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();
        }
    }

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

AnyOne能帮助我吗? 我听说过杰克逊,但我不知道如何使用它。

1 个答案:

答案 0 :(得分:0)

首先我创建默认集合类型

AsQueryable

其中content是inputStream。 我在某人的博客上找到了它。