【发布时间】:2019-10-12 21:15:30
【问题描述】:
我正在尝试限制通过 REST 从服务器到客户端的数据。是否可以根据 Jackson 序列化器所处的级别来更改它?
例如: 0级,照常行事。级别 1,用更少的字段做序列化程序。
我有一个自定义序列化程序,但它也在级别 0 上使用。
【问题讨论】:
标签: java serialization jackson
我正在尝试限制通过 REST 从服务器到客户端的数据。是否可以根据 Jackson 序列化器所处的级别来更改它?
例如: 0级,照常行事。级别 1,用更少的字段做序列化程序。
我有一个自定义序列化程序,但它也在级别 0 上使用。
【问题讨论】:
标签: java serialization jackson
找到了答案,其实很简单:
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();
}
【讨论】: