将字符串磁通拆分为多个磁通

时间:2019-04-29 12:30:26

标签: java project-reactor

我有类似这样的字符串

field1=value1,terminalField=true,field2=value2,field3=value3,terminalField=true

我想基于这样的特定定界符分割成较小的字符串

field1=value1terminalField=true,...

并发射到另一个磁通中,最终目的是发射一个对象,该对象累积直到terminalField=true的所有字段,以便磁通包含

object(field1=value1, terminalField=true)object(field2=value2, field3=value3, terminalField=true)

我看过各种运算符,但是我是Reactor的新手,因此在外观上有些挣扎。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找Flux#flatMapIterable operator

用逗号将其分割,然后使用Flux#windowUntil operator将其转换为Flux<Flux<String>>,其中每个内部Flux将是键值对的流,直到终止为止。

然后由您决定如何将内部磁通量转换为对象。您可以使用Flux#collectMap operator.map或其他收集/减少运算符。