如何使用 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();
我有一个 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();