gpt4 book ai didi

java - 支持 Jackson @JsonFilter 异步 DeferredResult

转载 作者:行者123 更新时间:2023-12-02 03:38:44 25 4
gpt4 key购买 nike

以此为基础Jira

我有这个方法:

val innerResult: DeferredResult[Object] = new DeferredResult[Object]()

override def setResult(result: T): Boolean = {
val beanPropertyFilter: SimpleBeanPropertyFilter = filter.size match {
case 0 => SimpleBeanPropertyFilter.serializeAll()
case _ => SimpleBeanPropertyFilter.filterOutAllExcept("id")
}

val filterProvider = new SimpleFilterProvider()
.addFilter("propertiesFilter", beanPropertyFilter)

val wrapper = new MappingJacksonValue(result)
wrapper.setFilters(filterProvider)
innerResult.setResult(wrapper)
}

在回复中我看到这个:

{"headers":{}, "body":[{"id":"573080B50CCDED33E08DA678"}], "statusCode":"OK"}

虽然我想看到:

[{"id":"573080B50CCDED33E08DA678"}]

我做错了什么?

最佳答案

我不了解 Scala,无法理解您的代码(result 在哪里定义?)。也许添加方法声明并修复缩进?

无论如何,您似乎获得了整个响应的 JSON 表示形式,而不仅仅是响应正文。在 Java 中,ResponseEntity 类具有以下属性:

  • headers:响应 header (Cache-Control 等)
  • statusCode:响应状态(200 OK、404 Not Found 等)
  • body:响应正文(一个包含单个对象的数组,在您的情况下带有 id 字段)

这部分看起来很可疑:

val wrapper = new MappingJacksonValue(result)
innerResult.setResult(wrapper)

看起来您正在获取结果(正文、 header 、statusCode)并将其存储在innerResult 中。仅基于变量名称,这似乎是倒退的。

关于java - 支持 Jackson @JsonFilter 异步 DeferredResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116132/

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