我试图限制通过REST从服务器到客户端的数据。是否可以根据其级别更改Jackson序列化器?
例如:
0级,照常做。级别1,使用较少的字段执行序列化程序。
我有一个自定义的序列化程序,但它也在第0级上使用。
最佳答案
找到了答案,实际上很简单:
JsonStreamContext jsonStreamContext = jsonGenerator.getOutputContext();
if (jsonStreamContext.getParent() == null || jsonStreamContext.getParent().toString().equals("/")) {
defaultSerializer.serialize(item, jsonGenerator, serializerProvider);
} else {
jsonGenerator.writeStartObject();
jsonGenerator.writeNumberField("id", item.getId());
jsonGenerator.writeStringField("name", item.getName());
jsonGenerator.writeEndObject();
}