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