我试图限制通过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();
    }

09-12 17:14