有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java GWTJacksonAPT不忽略序列化中的接口对象

我有一个class对象,其中包含一个接口变量,用于回调,我不想将其序列化为JSON。我曾尝试使用@JsonIgnoreProperties()注释使其忽略接口变量,但迄今为止没有成功。预处理器被一个错误阻塞。argumentException无法猜测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忽略此接口的最佳方法是什么?还是必须完全重新定义所有对象才能删除回调函数引用


共 (1) 个答案

  1. # 1 楼答案

    可以通过注释字段来使用@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,并且生成的序列化程序中不会包含忽略的字段