2016-10-10 23 views
0

我正在使用Immutables庫(https://immutables.github.io)。我需要將我的類序列化爲JSON(我使用Jackson)。我想跳過我的輸出JSON中的可選字段。在Immutables之前,我在課堂上提供了@JsonInclude(JsonInclude.Include.NON_EMPTY)如何使Immutables庫跳過序列化可選字段

看來,Immutables並不尊重那個註解。 如果我註釋每個可選字段@JsonInclude(JsonInclude.Include.NON_EMPTY)它工作正常。

是否可以指示Immutables使用類級別(而非字段級別)註釋來跳過序列化空白選項?我看到​​,但沒有使用它自定義傳遞的註釋。

我在我的類路徑傑克遜 - 數據類型 - jdk8,和我com.fasterxml.jackson.databind.ObjectMapper具有

mapper.registerModule(新 Jdk8Module()configureAbsentsAsNulls(真));

+1

你在使用https://github.com/FasterXML/jackson-datatype-jdk8嗎? – slim

+0

是的。如果我在字段級配置@JsonInclude(JsonInclude.Include.NON_EMPTY),但不可變的庫在類級別不尊重這個註解。 –

+0

我無法在本地複製您的問題。用@ JsonInclude註釋我的不可變類讓傑克遜省略了空的可選字段。你使用哪個版本的Immutables? – Henrik

回答

2

問題在v2.3.6(可能更早)版本的Immutables中解決。 Immutables尊重來自Jackson的@JsonInclude,@JsonPropertyOrder和其他類級別(或字段級別)註釋。這些註釋被複制到生成的不可變類,並且它們按預期工作。

相關問題