如何在 Spring Boot 中使用 WebClient 收集列表

How can I collect list with WebClient in Spring Boot

我想为一个对象收集以下数据。

{
"success": true,
"symbols": {
"AED": "United Arab Emirates Dirham",
"AFN": "Afghan Afghani",
"ALL": "Albanian Lek"
     }
}

我们的对象是这样的;

public class Currencies {
    public String success;
    public List<ExternalCurrency> currencyList;
}

public class ExternalCurrency {
    public String shortCode;
    public String name;
}

如何在 Spring 启动时使用 WebClient 收集 JSON 数据?

谢谢

您应该创建一个与 WebClient 响应匹配的模型:

public class Response {
    public String success;
    public Map<String, String> symbols;
}

并按如下方式使用:

WebClient webClient = WebClient.builder().baseUrl("-----").build(); 
Response response = webClient.get().retrieve().bodyToMono(Response.class).block();

现在您只需将 Response 对象映射到 Currencies

此外,您绝对应该避免使用 block()。它违背了使用 WebFlux 的全部目的。