我想在spring MVC中用jackson序列化一个对象。
我有一个控制器,它返回一个 ObjectTest1,它有一个属性 ObjectTest2。
public class ObjectTest1{
private ObjectTest2;
// setters getters...
}
public class ObjectTest2{
private String value;
// setters getters...
}
public @ResponseBody ObjectTest1 test() throws IOException ...
我有一个映射器,我有一个 ObjectTest2 的序列化程序,我已经用 @JsonSerialize(using = ObjectTest2.class) 注释了 ObjectTest1.getObjectTest2 方法。
它工作正常!但我想在很多对象中使用这个序列化程序,而不仅仅是在 ObjectTest1 中。
我应该怎么做才能避免在每个 getter 方法中添加注释?可以为ObjectTest2的所有属性自动使用spring这个序列化程序吗?
更新:
我已经在我的代码中使用了它:
<mvc:annotation-driven>
在 ajax 响应中正确生成为 json 的对象。也许我应该尝试用另一种方式解释。
所以。我有这些对象:
public class DTO{
private InnerThing innerThing;
@JsonSerialize(using=ThingSerializer.class)
public InnerThing getThing(){...}
}
public class InnerThing{
private String value;
}
生成的 json 看起来像:
{"innerThing":{"value":"something"}}
在我编写了一个序列化程序之后,json 是:
{"innerThing":"something"}
没关系,但要获得第二个版本的 json,我必须用 @JsonSerialize 注释 DTO 类中的 getInnerThing 方法...
我不想注释我使用 InnerThing 作为属性的所有方法。所以我的问题是,spring 可以自动序列化 InnerThing 类型的每个属性吗?