我有一個簡單的類來給出計數和db光標信息。JSONView示例以防止對默認值進行反序列化
public class Cursor
{
public String cursor = null;
public int count = -1;
}
我不希望發送計數和遊標(在序列化時),如果它們爲空或默認設置爲-1。
研究,我發現我應該使用一個視圖,但我不知道如何使用它和視圖實現來避免默認值。
此類不需要反序列化。
謝謝。
我有一個簡單的類來給出計數和db光標信息。JSONView示例以防止對默認值進行反序列化
public class Cursor
{
public String cursor = null;
public int count = -1;
}
我不希望發送計數和遊標(在序列化時),如果它們爲空或默認設置爲-1。
研究,我發現我應該使用一個視圖,但我不知道如何使用它和視圖實現來避免默認值。
此類不需要反序列化。
謝謝。
如果使用Jackson
你可以給
@JsonInclude(Include.NON_NULL)
public class Cursor
{
public String cursor = null;
public Integer count = null;
}
我已經改變了該領域的int
到Integer
當你給-1有一個值。
您也可以檢查這個post。
如果您使用的是2.x,上面的答案是最好的。使用JSONInclude註釋。
但是,如果您使用較小的版本,我不相信有任何註釋。我們必須自定義ObjectMapper。
public ObjectMapperProvider()
{
mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.WRITE_NULL_PROPERTIES,
false);
mapper.configure(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES,
false);
}
在web.xml
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.your.package; org.codehaus.jackson.jaxrs</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
com.your.package應該包含新的自定義objectmapper類。
謝謝。但jsonInclude可以在2.x上運行,但我使用的是1.7。我將爲2.x用戶發佈另一個答案。 – cloudpre