将输入流转换为对象列表

2023-12-09

我必须制作一个 jar 来访问 API 来获取人员详细信息列表,该列表基本上有四个字段:id、姓名、薪水、部门。

我正在使用 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();
            }
        }

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

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


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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将输入流转换为对象列表 的相关文章

随机推荐

  • 在张量流中将 1 通道掩模应用于 3 通道张量

    我正在尝试将掩码 二进制 仅一个通道 应用于 RGB 图像 3 个通道 标准化为 0 1 我当前的解决方案是 我将 RGB 图像分割成它的通道 将其与蒙版相乘 然后再次连接这些通道 with tf variable scope apply
  • CodeIgniter 的 CAS 身份验证库

    我正在尝试在 CodeIgniter 应用程序中实现 CAS 身份验证 但我找不到当前是否有为其设置的库 我通过只包含类并添加一些肮脏的修复来进行管理 但如果有人知道合适的库 我认为这将是一个更干净的解决方案 我一直在浏览这里以及谷歌上的一
  • PHP:帮助处理此日期格式

    我正在使用 CodeIgniter 构建一个应用程序 我的 SQL Server 数据库中有包含日期 时间字段的记录 我正在从 m d Y 文本字段中输入的日期查询这些记录 这对应于数据库中的日期格式 不幸的是我在英国 所以我想输入日期 例
  • 如何在创建新计时器之前检查计时器是否处于活动状态

    我在另一个线程上遇到了这个计时器代码 当您按下RaisedButton同时进行多次 每次点击都会增加 1 秒 从而增加减少的速度 有关检查计时器是否已处于活动状态以及是否不让计时器处于活动状态的最简单方法的任何想法RaisedButton创
  • 如何从私有 Docker 注册表中删除镜像?

    我运行一个私人 docker 注册表 我想删除除latest来自存储库 我不想删除整个存储库 只想删除其中的一些图像 这API docs没有提到做到这一点的方法 但肯定有可能吗 目前您无法使用注册表 API 来执行该任务 它只允许您删除存储
  • wamp上安装magento的问题

    大家好 谁能帮我解决安装 magento 时遇到的问题 我的问题是我已经在 wamp 上下载了 magento 在安装过程中我收到了错误 它给出的消息是致命错误 超过了 60 秒的最大执行时间 c wamp www magento lib
  • signalr 我如何从服务器向呼叫者发布消息

    我正在使用 Signalr 1 1 4 因为我仍在使用 net4 所以无法升级到 signalr 2 基本上我想从服务器向调用者发布消息 以避免消息发送到任何未启动进程的客户端 我的集线器类看起来像这样 public class Updat
  • VBScript 中的文件名字符串空格问题

    当我运行此命令时出现错误 但我不确定原因 运行 VBScript 来执行 bat 文件 我想将任何错误消息输出到日志文件 为此 我有以下代码 Set WshShell CreateObject WScript Shell WshShell
  • 如何过滤 Quickblox 用户?

    我想根据应用程序用户的电话号码或电子邮件过滤他们 但我不希望完全匹配 而是用户应返回的部分电子邮件或部分号码作为响应 Quickblox iOS SDK 有办法吗 假设我有一些 Quickblox 用户 如下所示 ID NAME Email
  • Swift 类中的静态与类函数/变量?

    以下代码在 Swift 1 2 中编译 class myClass static func myMethod1 class func myMethod2 static var myVar1 func doSomething myClass
  • 素数生成器逻辑

    我应该去上课PrimeNumberGenerator其中有一个方法nextPrime这将打印出用户输入的数字之前的所有质数 Ex Enter a Number 20 2 3 5 7 11 13 17 19 我们的老师告诉我们应该使用嵌套fo
  • VBScript“类型不匹配”问题与“[in, out] BSTR *”参数

    我正在使用第三方 COM 对象 该对象的一些方法将值作为 BSTR 指针传回 由于 VBscript 仅支持 Variant 类型 尝试以类似 Object Method sMyString 的方式使用会合理地以 类型不匹配 错误结束 我怀
  • 如何使用切换添加和删除必需的属性

    我的用户可以访问表单 为了简化任务 我放置了一个可选择的列表 但如果答案不在列表中 他们可以手动添加原因 默认情况下需要选择列表 但如果用户访问文本字段 则该文本字段将成为必需的 并且不再需要该列表 反之亦然 HTML div class
  • Spark / Scala:使用最后一次观察进行前向填充

    使用 Spark 1 4 0 Scala 2 10 我一直在试图找出一种方法来用最后一个已知的观察结果转发填充空值 但我没有看到一个简单的方法 我认为这是一件很常见的事情 但找不到显示如何执行此操作的示例 我看到用值向前填充 NaN 的函数
  • 上一个片段在新片段下方可见

    我有一个带有 ViewPager 的 TabLayout ViewPager 有四个片段 F1 F2 F3 和 F4 F1 包含一个 FrameLayout 它可以有 2 个片段 F11 和 F12 最初 我使用以下代码在 FrameLay
  • ANTLR解析MismatchedTokenException

    我正在尝试为我正在编写的更简单的语言编写一个简单的解析器 它由后缀表达式组成 到目前为止 我的解析器遇到了问题 当我在输入上运行它时2 2 test gt gt 我收到 MismatchedTokenException 另外 我将如何实现递
  • foreach 不适用于 getElementsByTagName 创建的数组

    当我通过使用 document getElementsByTagName 收集网页中的按钮来创建数组时 我无法使用 forEach 对于前 var deleteButtons document getElementsByTagName bu
  • payU 支付网关 Android 集成中缺少哈希参数

    我需要在我的 Android 应用程序中集成 payU 支付网关 但是当应用程序尝试获取哈希密钥时 它给我错误消息 哈希参数丢失 在演示应用程序中 有两个选项可以生成哈希值 if null salt generateHashFromServ
  • 在 for 循环中使用 ggarrange 排列多个绘图

    我想使用以下代码在一张图像中排列多个绘图 mydataframe lt data frame number1 sample 1 140 size 200 replace TRUE number2 sample 1 4000 size 200
  • 将输入流转换为对象列表

    我必须制作一个 jar 来访问 API 来获取人员详细信息列表 该列表基本上有四个字段 id 姓名 薪水 部门 我正在使用 apache httpclient 执行 get 请求 该请求在点击 API 时为我提供了一个 httpentity