如何在 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 的全部目的。
我想为一个对象收集以下数据。
{
"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 的全部目的。