2017-07-04 38 views
0

我具有以下類返回值,如果它是0

@JsonInclude(JsonInclude.Include.NON_DEFAULT) 
public class Order { 
    private OrderId orderId; 
    private int daysElapsed; 
    private List<Item> items; 
} 

現在,如果daysElapsed0它不包括作爲響應對象的一部分。我希望它在那裏。傑克遜提供哪些可以處理這件事的東西?

我想使用Integer類,並使用註釋NON_NULL來排除它。有沒有更好的方法來做到這一點?

+4

你爲什麼使用'Include.NON_DEFAULT'? – shmosel

+0

雖然使用'NON_NULL'仍然是同樣的問題,不是嗎?如果您使daysElapsed爲整數,則它的「默認」值將爲空,因爲它現在是一個對象。我想在你的構造函數中,如果你使用Integer而不是int,你可以將daysElapsed初始化爲0,並且它仍然是非空的,因此工作。雖然 – SaxyPandaBear

+0

@SaxyPandaBear似乎對我有點棘手,除非你把它作爲一個'int'。 – shmosel

回答

1

您只包括NON_DEFAULT值。 int字段的默認值爲0。所以當daysElapsed0時,它的值等於默認值,所以不包含在JSON中。

只需刪除@JsonInclude(JsonInclude.Include.NON_DEFAULT)註釋。

+0

我結束了使用'NON_NULL'註釋 –