当前位置: 首页 > 知识库问答 >
问题:

Jackson从对象列表中筛选和反序列化

公冶同
2023-03-14

假设我有一个DTO类,如下所示:

class MyDTO{
 Type property1;
 Type property2;
// ... and so on
}

现在我有一个返回MyDTO对象列表的API。但我想根据一些标准从这个对象列表中过滤掉并获取单个对象MyDTO。(比如属性1==一些值)。

我知道,在获得对象列表后,我可以使用流来实现这一点。但杰克逊有什么办法吗?因此,在我的fiegn客户端调用中,我可以将单个对象作为返回类型。

MyDTO feignCallApi() // returns a single object after filtering for one object while serializing.

提前感谢!

共有1个答案

梁丘安晏
2023-03-14

否。Jackson仅用于序列化/反序列化数据。在您描述的场景中,以下是两种可能性:

您与之通信的API提供了使用一些查询参数过滤掉所需对象的可能性。

引入中介层,例如利用客户端的服务类,并使用例如流对调用结果执行任何必要的过滤。

调用类-

然后服务类仍然可以有一个只返回1个MyDTO对象的方法。

 类似资料:
  • 我有一个抽象的超类A,我有几个具体的子类B,C,D 在序列化方面,我执行以下操作: 没问题。我现在想反序列化这个。我知道我不能实例化一个抽象类,那么这是如何实现的呢? 这不起作用: 编辑:我把这个添加到我的抽象超类中:(仍然没有运气) 再次编辑:我现在遇到以下错误: 看看JSON,@class不在那里。我怎样才能做到?我试过: 但这并没有奏效。有这方面的例子吗?如何告诉对象映射器对类使用我的注释?

  • 我有下面的JSON,我正试图使用Jackson API反序列化它 我基本上需要一个附件类,它有一个AttachmentFile对象列表,如下所示: 如何使用自定义反序列化器实现这一点? 谢谢

  • 我有以下控制器: 使用以下请求对象: 当帖子通过并查看我得到的对象时,有效负载列表中有LinkedHashMap对象,而不是我的DTO类型的对象。 如何让Spring jackson将JSON转换为我的DTO对象。请记住,我计划对其他对象列表重用包装器响应DTO,这就是我使用通用列表(List)的原因。 这是我正在尝试的JSON。

  • 问题内容: 我需要从redis保存和加载对象。 该对象包含GrantedAuthority列表(除其他外),它是一个接口: Jackson成功地序列化了该对象,但是未能反序列化该对象,但有以下例外: 我知道可以通过添加以下内容来指定类型: 但是在这种情况下我无法做到这一点,因为the 是Spring的接口,我无法更改它。 序列化的json是: } 摘要只能用填充。 所以我尝试了: 仍然没有运气。

  • 我试图通过Kotlin使用Jackson对lastfm api提供的xml进行反序列化。我用JAXB在Java中实现了这一点,我正在尝试移植它。除以下示例中的“未包装列表”字段外,所有功能都正常工作。我知道Track数据类正在工作,因为如果我使用而不是

  • 我有这样一个实体: 和相关的JSON: 我试图在Spring MVC@Controller中以如下方式对其进行反序列化: 添加