UnrecognizedPropertyException对我没有意义

最后发布: 2018-03-01 18:52:55


问题

我有一个JSON映射,其中包含一个简单的数据类型(字符串)和一个复杂的数据类型。 我创建了一个结构来处理此问题。 这里是:

public static class PayloadData {
    String authkey;
    PizzaPlaceTo pizzaPlace;
    Map<String, List<String>> updates;
}

现在,我像这样读取数据:

    PayloadData payloadData = objectMapper.readValue(payload, PayloadData.class);

它给了我:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "authkey" (class pizzainthecloud.pizzaplace.controller.PizzaPlaceController$PayloadData), not marked as ignorable (0 known properties: ])
 at [Source: {"authkey":"Don't Panic!","pizzaPlace":{"contactName":null,"customerId":null}; line: 1, column: 13] (through reference chain: pizzainthecloud.pizzaplace.controller.PizzaPlaceController$PayloadData["authkey"])

因此,如果我正确阅读此书,则表明我的接收类中没有authkey可以接收JSON数据中的authkey,对吗? 只有那里。

请帮助。

java json jackson
回答

因此,看起来Jackson只适用于bean,而不适用于struct样式类。 我将课程更改为:

public static class PayloadData {
    private String authkey;
    private PizzaPlaceTo pizzaPlace;
    private Map<String, List<String>> updates;

    public String getAuthkey() {
        return authkey;
    }

    public void setAuthkey(String authkey) {
        this.authkey = authkey;
    }

    public PizzaPlaceTo getPizzaPlace() {
        return pizzaPlace;
    }

    public void setPizzaPlace(PizzaPlaceTo pizzaPlace) {
        this.pizzaPlace = pizzaPlace;
    }

    public Map<String, List<String>> getUpdates() {
        return updates;
    }

    public void setUpdates(Map<String, List<String>> updates) {
        this.updates = updates;
    }
}

这就解决了问题。