2012-05-08 36 views
0

我有一個使用Jersey的端點,它使用一個對象。該對象具有作爲其中一個成員的列表。但是,當我發送一個空數組時,它給了我一個列表中的空元素。通過「空元素」,我的意思是那裏有一個對象,所有的字段都是空的。Jersey爲空列表提供「null」元素

@XMLRootElement 
public class myContainer { 
    public List<myObject> list; 
    // etc 
} 

@XMLRootElement 
public class myObject { 
    public String data1; 
    public String data2; 
    // etc 
} 

// I hit the following with "{\"list\":[]}"  

@POST 
@Consumes(MediaType.APPLICATION_JSON) 
public Response post(final myContainer x) { 
    for (myObject obj : x.list) { 
    // why do I hit this? 
    // debugging, I actually have an object here with all null fields 
    obj.data1 == null; // true 
    obj.data2 == null; // true 
    } 
} 

任何人都知道爲什麼澤西島會這樣做?

我將WRITE_NULL_PROPERTIES設置爲false,但我不明白這會對此產生什麼影響。

+0

我也有這個問題。我的客戶端使用一個剛剛使用默認構造函數構造的對象填充應該爲空的List。你找到答案了嗎? –

+0

我現在的解決方法是驗證傳入的對象。在所有空字段的情況下,我將它們從集合中刪除。 –

回答

0

我不知道,但也許設置

@XmlElemet(nillable=true) 
public List<myObject> list; 

是你在尋找什麼?