【发布时间】:2020-02-15 13:35:37
【问题描述】:
在this 问题中,我看到了一种有趣的方法,可以将对象注入到杰克逊映射框架的自定义反序列化器中(我目前使用的是版本 2.10.x)。
本质上,在ObjectMapper中注册了一个依赖项 MyService
jsonMapper.setInjectableValues(new InjectableValues
.Std()
.addValue(MyService.class.getName(), myServiceInstance));
然后在扩展StdDeserializer 的类中,可以通过DeserializationContext 访问它,该findInjectableValue 方法具有findInjectableValue。
现在,我希望库提供一种对称的序列化方法,但老实说找不到。具体来说,如果你有一个扩展 StdSerializer 的类,你将需要实现一个方法 serialize(ProjectSerializable value, JsonGenerator jsonGenerator, SerializerProvider provider),它似乎没有一个类具有类似 DeserializationContext 的特性。
那么,如何使用自定义序列化程序实现相同的“注入”,而不采用基于对实例提供程序的静态访问或其他无法测试的东西的丑陋解决方案。
【问题讨论】: