1
我有一个客户端应用程序,我正在使用它来使用某些API并对其进行更新。我将Jersey 2.25.1与Jersey Jackson一起使用,没有自定义连接器,只是基本设置。在运行时更新Jersey Jackson的Mapper配置
我有一个POJO,我正在序列化使用杰克逊和泽西岛,但我需要这个POJO序列化有两种方式,第一个是包括所有空值,而序列化他们,第二个是忽略和删除空字段。
这就是API的工作方式,所以API不能改变(它不是我的API),所以我问我可以在运行时更新Jersey Jackson Mapper吗?
我所寻找的是这样的:
Client client = ClientBuilder.newBuilder()
.register(JacksonFeature.class)
.build();
client.getJacksonObjectMapper().setSerializationInclusion(Include.NON_NULL);
这可以在客户端创建后完成吗?我的意思是在运行时有条件吗? – engma
不可以。您将获得的最佳模型是每个模型类。被序列化的类被传递给'getContext'方法,并且你可以有条件地决定在那里使用哪个映射器,但是事实就是如此。除此之外,映射器实际上不应该像这样在条件基础上配置,因为它的配置不是线程安全的。您可能只需为不同的场景创建不同的客户端。 –
是的,好像我需要创建另一个客户端然后@peeskillet – engma