如何使用 Mono<String> 处理逗号分隔的 id 字符串

How to process comma separated string of ids using Mono<String>

我有一个 api,它给了我一个逗号分隔的 ID 列表,我正在使用 Spring Boot WebClient 调用它并处理响应。

API 响应是 plain/text 中的 [1,2,3,4](不是 json),我正在执行以下操作来处理结果 -

Mono<String> ids = client.get()
                .uri("http://localhost:8080")
                .retrieve()
                .bodyToMono(String.class);

我想知道如何处理 ids 变量中的项目。

新手api。

你可以直接将response转化为Flux,然后一个一个的处理

webClient.get()
        .uri("http://localhost:8080")
        .retrieve()
        .bodyToFlux(Integer.class)
        .doOnNext(id -> {
            System.out.println(id);
            // process id...
        })
        .subscribe();

另一种可能的选择是使用方法 flatMapIterable:

Mono<String> 转换为 Flux<Integer>
ids.flatMapIterable(line -> Arrays.asList(line.replace("[", "").replace ("]", "").split(",")))
        .doOnNext(id -> System.out.println(id))
        .subscribe();