如何将 application/json 类型的 FilePart 编组到 spring webflux 功能端点处理程序中的 POJO?
How to marshal FilePart of type application/json to a POJO in spring webflux functional endpoint handler?
我收到一个多部分请求,其中一些部分代表 Json 个文件,我需要将其转换为 POJO,我可以使用基于注释的控制器
@RequestPart("person") Person
将该部分编组为 Person POJO。
有了功能端点,我可以通过
获得零件
request.body(BodyExtractors.toParts())
但我不知道如何将相关部分编组到 pojo。
为此,您可以在 webflux 中使用 Jackson2JsonDecoder。假设多部分表单数据的简单示例。
return serverRequest
.multipartData()
.map(MultiValueMap::toSingleValueMap)
.map(stringPartMultiValueMap -> stringPartMultiValueMap.get("person"))
.flatMap(part -> new Jackson2JsonDecoder()
.decodeToMono(part.content(),
ResolvableType.forClass(Person.class), null, null)
.map(o -> (Person) o))
.flatMap(person -> ServerResponse.ok().body(Mono.just(person), Person.class));
我收到一个多部分请求,其中一些部分代表 Json 个文件,我需要将其转换为 POJO,我可以使用基于注释的控制器
@RequestPart("person") Person
将该部分编组为 Person POJO。 有了功能端点,我可以通过
获得零件request.body(BodyExtractors.toParts())
但我不知道如何将相关部分编组到 pojo。
为此,您可以在 webflux 中使用 Jackson2JsonDecoder。假设多部分表单数据的简单示例。
return serverRequest
.multipartData()
.map(MultiValueMap::toSingleValueMap)
.map(stringPartMultiValueMap -> stringPartMultiValueMap.get("person"))
.flatMap(part -> new Jackson2JsonDecoder()
.decodeToMono(part.content(),
ResolvableType.forClass(Person.class), null, null)
.map(o -> (Person) o))
.flatMap(person -> ServerResponse.ok().body(Mono.just(person), Person.class));