2012-09-25 26 views
0

我有一個簡單的類來給出計數和db光標信息。JSONView示例以防止對默認值進行反序列化

public class Cursor 
{ 
    public String cursor = null; 
    public int count = -1; 
} 

我不希望發送計數和遊標(在序列化時),如果它們爲空或默認設置爲-1。

研究,我發現我應該使用一個視圖,但我不知道如何使用它和視圖實現來避免默認值。

此類不需要反序列化。

謝謝。

回答

0

如果使用Jackson你可以給

@JsonInclude(Include.NON_NULL) 
public class Cursor 
{ 
    public String cursor = null; 
    public Integer count = null; 
} 

我已經改變了該領域的intInteger當你給-1有一個值。
您也可以檢查這個post

+0

謝謝。但jsonInclude可以在2.x上運行,但我使用的是1.7。我將爲2.x用戶發佈另一個答案。 – cloudpre

0

如果您使用的是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類。