java - 在 Jackson 中展平嵌套属性

标签 java json

我需要定义一个平面 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 属性来注释那些 key 属性

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

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

我该如何解决这个问题?我做错了什么?

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

最佳答案

可能目前是不可能的。

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

功能请求:https://github.com/FasterXML/jackson-annotations/issues/42

关于java - 在 Jackson 中展平嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35128383/

相关文章:

json - postman - 发布应用程序/json 数据

java - ProcessBuilder 无法返回 JSon 字符串

javascript - 如何使用 ionic 电容器启用捏缩放?

java - IntStream.range(0, 1_000_000) 在 113383 停止(Project Euler : Longest Collatz Sequence)

java - 当数组大小未知时,在 for 循环中抛出数组越界异常(乘法持久性)

java - Lucene NRTManager 处理

c# - Web Api 2 中的 Mvc 样式参数绑定(bind)?

java - Play Framework 模板的自定义 java 扩展

c# 将 Json 加载到继承类中

javascript - json_encode() 无法返回 html