无法读取json post方法(杰克逊)

时间:2019-07-27 10:59:43

标签: java json spring-boot jackson

我有对象Bill,我在其中@@ JsonRootName(value =“ bill”)。 我有结果Bill {siteId ='null',billId ='null'}在哪里我犯错了? 我的json

{
    "bill":
    {
        "siteId":"gkfhuj-00",
        "billId":"11b0309c-42b8-4d20-bd58-3e854f039287"
    }
}

我班的比尔

@JsonRootName(value = "bill")
public class Bill {
    private final String siteId;
    private final String billId;

    public Bill(String siteId, String billId) {
        this.siteId = siteId;
        this.billId = billId;
    }


    public String getSiteId() {
        return siteId;
    }

    public String getBillId() {
        return billId;
    }

    @Override
    public String toString() {
        return "Bill{" +
                "siteId='" + siteId + '\'' +
                ", billId='" + billId + '\'' +
                '}';
    }
}

我让Json Object满意的方法

    @PostMapping("/json")
    @ResponseBody
    public ResponseEntity getJson(@RequestBody Bill bill) {

        System.out.println(bill.toString());

        return null;
    }

1 个答案:

答案 0 :(得分:0)

问题可能出在杰克逊的“功能切换”上。您需要在ObjectMapper中启用UNWRAP_ROOT_VALUE。因此,如果您使用的是Spring,这应该进入@Bean配置的某个位置:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);