java - 无法使用 Spring Webflux Webclient 映射二级 json 值
问题描述
我正在使用墨西哥的加密货币公共 API:https ://api.bitso.com/v3/available_books/ ,它返回一个像这样的 json:
"success": true,
"payload": [
{
"book": "btc_mxn",
"minimum_price": "500.00",
"maximum_price": "16000000.00",
"minimum_amount": "0.000075",
"maximum_amount": "500.00000000",
"minimum_value": "5",
"maximum_value": "10000000.00"
},
{
"book": "eth_btc",
"minimum_price": "0.00000100",
"maximum_price": "5000.00000000",
"minimum_amount": "0.00000100",
"maximum_amount": "1000.00000000",
"minimum_value": "0.00000100",
"maximum_value": "2000.00000000"
},
使用 Webclient 使用它的代码是:
@Override
public Mono<Coins> getCoins() {
return webClient.get().uri("https://api.bitso.com/v3/available_books/")
.accept(MediaType.APPLICATION_JSON)
.retrieve().bodyToMono(Coins.class);
}
试图绑定它的 POJO 是:
@Data
public class Coins {
@JsonProperty("success")
private String success;
@JsonProperty("playload")
private List<Coin> playload;
和
@Data
public class Coin {
@JsonProperty("book")
private String book;
@JsonProperty("minimum_amount")
private String minimumAmount;
@JsonProperty("maximum_amount")
private String maximumAmount;
@JsonProperty("minimum_price")
private String minimumPrice;
@JsonProperty("maximum_price")
private String maximumPrice;
@JsonProperty("minimum_value")
private String minimumValue;
@JsonProperty("maximum_value")
private String maximumValue;
到目前为止,它只有这样的映射
"success": true,
"payload": null
解决方案
您需要有无参数构造并将单词更改playload
为payload
:)
推荐阅读
- javascript - 使用 Css 模块将条件转换样式添加到我的侧边导航
- c# - 无需订阅的接口侦听器 C#
- ios - 如何从 React Native 中的 package.json 获取 npm 包版本
- geojson - 如何向 MapBox 显示一个巨大的 GeoJSON 文件?
- vue.js - 为什么我有 TypeError: Cannot read property 'protocol' of undefined using axios with vue?
- python - 有没有办法全局安装 Flask
- qwebengineview - 如何捕获 QWebEnginePage::view 渲染的图像?
- python - ModuleNotFoundError:导入 tensorflow 后没有显示名为“_pywrap_tensorflow_internal”的模块错误
- python-3.x - 如何通过从 Python 控制台运行代码在 altair 中显示/保存分层图
- vb.net - VB.NET 2019 从另一个表单打开一个表单