我有一个对象,我想在程序的一部分中使用属性进行序列化,但在不同的部分中没有属性。我还有一个经过广泛定制的 ObjectMapper,用于两种序列化。我的第一个倾向是使用 Mixin 来调整是否显示属性,但似乎您只能将它们放在 ObjectMapper 上,而不能放在 ObjectMapper 返回的读取器上。基本上我希望能够编写的代码如下所示。
ObjectMapper myMapper = new ObjectMapper(); // in reality there is a lot of customization
Foo foo = myMapper.reader().withMixin(Foo.class, FooMixin.class).readValue(jsonParser, Foo.class);
正确的。但是,您无法动态更改混入:由于它们用于自省(反)序列化器,并且结果(实际(反)序列化器)被缓存,因此必须将它们添加为初始配置的一部分。
这就是为什么两者都没有ObjectReader
nor ObjectWriter
公开更改混合的方法:它们只允许在每次调用的基础上更改可以动态更改的内容。
但也许混合并不是做到这一点的最佳方法:您是否考虑过使用JSON 视图反而?可以针对每个(反)序列化单独更改正在使用的活动视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)