Java 修改焊剂类型

Java 修改焊剂类型,java,spring-boot,web-services,proxy,spring-webflux,Java,Spring Boot,Web Services,Proxy,Spring Webflux,我得到了一个通量,它包含以下数据结构 [ { "id": 181, "date": "2020-06-25T14:49:04", "status": "publish", "type": "wprm_collection", "link": "

我得到了一个通量,它包含以下数据结构

[
    {
        "id": 181,
        "date": "2020-06-25T14:49:04",
        "status": "publish",
        "type": "wprm_collection",
        "link": "http://35.228.92.155/?post_type=wprm_collection&p=181",
        "collection": {
            "id": 181,
            "name": "Menu-4",
            "nbrItems": "3",
            "items": {}
        }
    },
    {...},
    {...},
    {...}
]
下面的代码无法检索子对象并提供新的通量

public Flux<Collection> getWeeklyMenus() {
        System.out.println("Calling WP");

        Mono<List<CollectionDetail>> collectionDetailList = client.get()
                .uri("/wprm_collection")
                .retrieve()
                .bodyToFlux(CollectionDetail.class).collectList();

        List<Collection> collections = new ArrayList();
        collectionDetailList.flatMap(items->{
            for(CollectionDetail item : items){
                Collection collection = item.getCollection();
                collections.add(collection);
            }
            return null;
        });

        return Mono.just(collections).flatMapMany(Flux::fromIterable);
    }

公共流量getWeeklyMenus(){ System.out.println(“调用WP”); Mono collectionDetailList=client.get() .uri(“/wprm\u集合”) .retrieve() .bodyToFlux(CollectionDetail.class).collectList(); 列表集合=新的ArrayList(); collectionDetailList.flatMap(项目->{ 对于(集合详细信息项:项){ Collection=item.getCollection(); 集合。添加(集合); } 返回null; }); 返回Mono.just(collections.flatMapMany(Flux::fromIterable); }
在本例中,如何在不阻塞流的情况下将通量转换为通量?

如何不提取调用
collectList()
的列表并直接处理
Flux

解决方案:

public Flux<Collection> getWeeklyMenus() {
    Flux<CollectionDetail> collectionDetailList = client.get()
            .uri("/wprm_collection")
            .retrieve()
            .bodyToFlux(CollectionDetail.class);

    return collectionDetailList
            .map(CollectionDetail::getCollection);
}
公共流量getWeeklyMenus(){ Flux collectionDetailList=client.get() .uri(“/wprm\u集合”) .retrieve() .bodyToFlux(收集详情.类别); 返回收集详细信息列表 .map(CollectionDetail::getCollection); }
是否有其他方法可以检索CollectionDetail以便执行更多操作,比如从采集中删除一些噪声数据并添加其他噪声数据?您可以始终使用链中的
过滤器来删除一些元素。要添加新元素,您可以查看
merge
concat
操作符