首页 > 解决方案 > 无法使用 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

标签: javaspringspring-bootspring-webfluxspring-web

解决方案


您需要有无参数构造并将单词更改playloadpayload:)


推荐阅读