【发布时间】:2018-11-14 22:00:17
【问题描述】:
是否可以告诉JsonGenerator 使用特定的 JsonView 序列化对象?
例如:
@Data
class Author {
@JsonSerialize(using=CustomSerializer.class)
List<Book> bestFiveBooksOfAllTime;
};
@Data
class Book extends BaseEntity
{
@JsonView(SummaryView.class)
private String title;
@JsonView(SummaryView.class)
private String author;
private String review;
}
在我的CustomSerializer 中,我希望能够按照以下方式做一些事情:
public class CustomSerializer extends JsonSerializer<Author> {
@Override
public void serialize(Author value, JsonGenerator jgen,
SerializerProvider provider) throws IOException,
JsonProcessingException {
jgen.writeStartObject();
for (Book book : value.getBestFiveBooksOfAllTime()) {
// Something like the following...
jgen.writeObjectFieldUsingView(book.getId().toString(), book, SummaryView.class);
}
jgen.writeEndObject();
}
}
即,在上述场景中,我希望结果包含bestFiveBooksOfAllTime 的映射,其中值就是本书的SummaryView。
【问题讨论】:
-
这个问题可能对stackoverflow.com/questions/7161638/…有帮助