java – 在Jackson中展平嵌套属性

我需要定义一个平面POJO,它将(平面)属性映射到 JSON规范中的嵌套对象.用代码更好地解释

{
    "offset": 0,
    "pageSize": 10,
    "filter": {
        "key1":"value1",
        "key2": true,
        ....
    }
}

我的POJO应如下所示:

public class Pojo {
    private int offset;
    private int pageSize;

    private String key1;
    private boolean key2;
}

到目前为止,我已经尝试使用@JsonProperty及其value属性来注释这些关键属性

@JsonProperty("filter.key1")
private String key1;

但是当我进入MVC控制器时,这些属性虽然在JSON中设置,但在解码的POJO中为空.

我怎样才能解决这个问题?我做错了什么?

我绝对不想创建嵌套的子类

最佳答案 可能目前不可能.

这是因为Jackson目前支持@JacksonUnwrapped用于相反的情况,但没有@JacksonWrapped

>在这里讨论:http://jackson-users.ning.com/forum/topics/use-annotations-to-skip-levels
>功能要求:https://github.com/FasterXML/jackson-annotations/issues/42

点赞