Jackson:使用嵌套对象在对象上序列化为 JSON,将子字段合并到拥有类中



假设我有看起来像这样的Java类:

public class A {
    public String name;
    public B b;
}
public class B {
    public int foo;
    public String bar;
}

我想将A实例序列化为 JSON。我将使用杰克逊ObjectMapper类:

A a = new A(...);
String json = new ObjectMapper().writeValueAsString(a);

使用此代码,我的 JSON 将如下所示:

{
    "name": "MyExample",
    "b": {
        "foo": 1,
        "bar": "something"
    }
}

相反,我想注释我的 Java 类,以便生成的 JSON 如下所示:

{
    "name", "MyExample",
    "foo": 1,
    "bar": "something"
}

有什么想法吗?

就我个人而言,我认为最好将结构映射到结构,而不是进行额外的转换。

但是,如果您确实想采用该计划,只需使用Jackson 2.x,并在属性b上添加@JsonUnwrapped注释。这应该可以解决问题。

最新更新