杰克逊:使用嵌套对象对对象进行JSON序列化,将子字段合并到拥有类中

ecb*_*die 6 java serialization json jackson

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

public class A {
    public String name;
    public B b;
}

public class B {
    public int foo;
    public String bar;
}
Run Code Online (Sandbox Code Playgroud)

我想将一个实例序列A化为JSON.我将使用杰克逊ObjectMapper班级:

A a = new A(...);
String json = new ObjectMapper().writeValueAsString(a);
Run Code Online (Sandbox Code Playgroud)

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

{
    "name": "MyExample",
    "b": {
        "foo": 1,
        "bar": "something"
    }
}
Run Code Online (Sandbox Code Playgroud)

相反,我想注释我的Java类,以便生成的JSON看起来像这样:

{
    "name", "MyExample",
    "foo": 1,
    "bar": "something"
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Sta*_*Man 9

我个人认为你可能会更好地将结构映射到结构,而不是进行额外的转换.

但如果您确实想要使用该计划,只需使用Jackson 2.x,并@JsonUnwrapped在属性上添加注释b.这应该够了吧.