GWT-Jackson-APT 不忽略序列化中的接口对象

GWT-Jackson-APT not ignoring interface object from serialization

我有一个 class 对象,它包含一个接口变量,用于我不想序列化到 JSON 中的回调。我试图使用 @JsonIgnoreProperties() 注释使其忽略接口变量,但到目前为止还没有运气。预处理器因 IllegalArgumentException 无法猜测 CallbackRun...

界面大致如下:

public interface callbackRun {
    void runOnFinish();
}

我的 class 的粗笔画形状定义为:

@JSONMapper
@JsonIgnoreProperties(ignoreUnknown=true)
public class itemInventory {

    public static itemInventory_MapperImpl MAPPER = new itemInventory_MapperImpl();

    private static final List<item> itemList = new ArrayList<>();
    private callbackRun responseHandler = null;

    / * other variables, getters setters here */

}

让 GWT-jackson-APT 忽略此接口的最佳方法是什么?或者我是否必须完全重新定义我的所有对象才能删除我的回调函数引用?

您可以通过注释字段

来使用@JsonIgnore
@JSONMapper
public class itemInventory {

    public static itemInventory_MapperImpl MAPPER = new itemInventory_MapperImpl();

    private static final List<item> itemList = new ArrayList<>();
    @JsonIgnore
    private callbackRun responseHandler = null;

    / * other variables, getters setters here */

}

将对象写入 JSON 时不会序列化该字段,从 JSON 读取对象时会忽略该字段。你总是可以检查生成的映射器,你会在生成的反序列化器中看到一个方法initIgnoredProperties,而且忽略的字段不会包含在生成的序列化器中。