我的 REST API 中有一个复杂的类:
class Complicated {
String foo
Integer bar
Instant baz
...
// lots more
}
我还有另一个包含以下集合的类Complicated
:
class HasComplications {
String description
List<Complicated> complications
}
当我序列化我的HasComplications
(使用 Spring MVC)时,我只想要一个片段Complicated
:
{
description: "hello world",
complications: [ {
foo: "foo1",
bar: 42
] }
}
当我直接序列化 aComplicated
时,我可以@JsonView
用来告诉 Jackson 要序列化的属性集:
class Complicated {
@JsonView(Views.Snippet) String foo
@JsonView(Views.Snippet) Integer bar
Instant baz
...
// lots more
}
但是,当我Complicated
在complications
属性中传递序列化时,杰克逊会序列化所有属性。有没有办法让我声明性地告诉它“在序列化这个属性时使用这个视图”?
class HasComplications {
String description
@UseJsonView(Views.Snippet)
List<Complicated> complications
}