【问题标题】:Splitting a string flux into multiple flux将串通量拆分为多个通量
【发布时间】:2019-04-29 12:30:26
【问题描述】:

我有很多这样的字符串

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

我想根据特定的分隔符拆分成更小的字符串

field1=value1, terminalField=true, ...

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

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

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

【问题讨论】:

    标签: java project-reactor


    【解决方案1】:

    我认为Flux#flatMapIterable operator 是您要找的。​​p>

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

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

    【讨论】:

    • 对不起,应该解释得更好,初始字符串可以包含部分objects,即field1=value1, field2=value2field3=value3, terminalField=true,所以单个对象可以跨越多个字符串,这就是我认为我必须拆分的原因他们在, 上先到各个字段。
    • 好的,我会修改我的答案:)
    猜你喜欢
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    相关资源
    最近更新 更多