我正在使用 Jackson 库编写自定义序列化程序,并将它们注册到自定义 ObjectMapper 中。但是,我还想更改默认序列化,以便在未编写更具体的自定义序列化时简单地输出对象的字符串表示形式。
例如,假设除了默认序列化程序之外,我还为类“Map”和“Entry”编写了自定义序列化程序。然后我的自定义 ObjectMapper 中的序列化模块可能如下所示:
SimpleModule module = new SimpleModule("module", new Version(0, 1, 0, "alpha", null, null));
module.addSerializer(Entry.class, new EntryJsonSerializer());
module.addSerializer(Map.class, new MapJsonSerializer());
module.addSerializer(Object.class, new DefaultJsonSerializer());
this.registerModule(module);
但是,我发现该模块将使用 DefaultJsonSerializer 来序列化 Map 和 Entry 对象(因为它们也是 Object 对象)。
如何更改默认序列化行为,同时确保按预期序列化 Entry 和 Map 对象?