杰克逊未正确将属性映射到POJO

时间:2019-09-03 15:58:16

标签: java json jackson

曾经尝试映射我从REST API调用中接收到的某个JSON字符串,但到目前为止,我仅收到以下消息。

Unrecognized field "my_first_field" (class MyClass), not marked as ignorable

我一直通过以下方式解析IOUtils类的内容(也许是根本原因)。

String json = IOUtils.toString(responseEntity.getContent(), UTF_8);

完成此操作后,我尝试使用ObjectMapper将有效负载String映射到我的POJO类。

new ObjectMapper().readValue(json, new TypeReference<MyClass>(){ })

但是,在执行该步骤时,会提示出现开头提到的异常。 POJO类如下。

public static class MyClass {

    @JsonProperty("my_first_field")
    private List<Map<String, String>> myFirstField;
    @JsonProperty("my_second_field")
    private String mySecondField;

    public MyClass() { }

    public MyClass(List<Map<String, String>> myFirstField, String mySecondField) {
        this.myFirstField = myFirstField;
        this.mySecondField = mySecondField;
    }

    (...)

}

忽略那些未知字段将导致所有POJO字段均为空。这可能是什么问题?

编辑:JSON示例

{"my_second_field":"samplevalue", "my_first_field":[{"inner":"value"}]}

1 个答案:

答案 0 :(得分:2)

确保从fastxml包而不是其他任何地方导入@JsonProperty注释。