当前位置: 代码迷 >> java >> GWT-Jackson-APT 不忽略序列化中的接口对象
  详细解决方案

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

热度:92   发布时间:2023-07-26 14:31:38.0

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

界面大致如下:

public interface callbackRun {
    void runOnFinish();
}

我的班级的粗笔画形状定义为:

@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方法,并且被忽略的字段也不会包含在生成的序列化器中。

  相关解决方案