杰克逊 Json 列表内部对象,如何获取豆子



我在使用 Jackson 将 Json 字符串转换为 Java 中的对象时遇到困难。

public class PPDResult {

    int Result;
    String ResultMessage;
    List<PPDObj> LoanInfos;
}
public class PPDObj {
    private int ListingId;
    private String Title;
    private String CreditCode;
    private BigDecimal Amount;
    private Double Rate;
    private int Months;
    private int PayWay;
    private BigDecimal RemainFunding;
}

数据:

{
    "LoanInfos": [
        {
            "ListingId": 52233312,
            "Title": "xxxxxxx",
            "CreditCode": "D",
            "Amount": 787,
            "Rate": 22,
            "Months": 6,
            "PayWay": 0,
            "RemainFunding": 387
        },
        {
            "ListingId": 52233362,
            "Title": "xxxxxxxxx",
            "CreditCode": "B",
            "Amount": 10000,
            "Rate": 18,
            "Months": 6,
            "PayWay": 0,
            "RemainFunding": 7695
        }
    ],
    "Result": 1,
    "ResultMessage": "success",
    "ResultCode": null
}

检索代码:

String resultStr = new BufferedReader(inputStreamReader).readLine();        
pPDResult = mapper.readValue(resultStr, PPDResult.class);

错误:

Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "LoanInfos" (class ppd.pojo.PPDResult), not marked as ignorable (3 known properties: , "resultMessage", "result", "loanInfos"])
 at [Source: xxxxxxxxx; line: 1, column: 15] (through reference chain: ppd.pojo.PPDResult["LoanInfos"])

问题:

怎么了?应该如何编写正确的代码?

我哈瓦参考杰克逊 JSON 列表内部对象但尚未解决在此处输入图像描述在此处输入图像描述

这是决心。谢谢@cricket_007

我尝试更改模型,将@JsonProperty添加到字段中,如下所示:

public class PPDObj {
    @JsonProperty("ListingId")
    private int ListingId;
    @JsonProperty("Title")
    private String Title;
    @JsonProperty("CreditCode")
    private String CreditCode;
    @JsonProperty("Amount")
    private BigDecimal Amount;
    @JsonProperty("Rate")
    private Double Rate;
    @JsonProperty("Months")
    private int Months;
    @JsonProperty("PayWay")
    private int PayWay;
    @JsonProperty("RemainFunding")
    private BigDecimal RemainFunding;
}
public class PPDResult {
    @JsonProperty("Result")
    int Result;
    @JsonProperty("ResultMessage")
    String ResultMessage;
    @JsonProperty("ResultCode")
    String ResultCode;
    @JsonProperty("LoanInfos")
    List<PPDObj> LoanInfos;
}

谢谢!

最新更新