2013-02-11 100 views
0

我正在做Java谷歌日曆同步,像這樣的問題: 我必須發佈一個EventDateTime(GenericJson的子類)到谷歌同步時間。特別是在我的情況下,我必須清除「日期」字段,並設置「日期時間」字段。GenericJson不保留空值

//code to init the variable dateTime, in the form of google DateTime 
    EventDateTime edt = new EventDateTime(); 
    edt.put("dateTime", dateTime); 
    edt.put("date", null); 

當我使用上面的代碼,內部EDT地圖只顯示1 <key,value>對:<dateTime,some date>。沒有價值對<date,null>

任何人都會遇到這種情況?請幫我解決。 tks。

更新:這個作品:edt.put ("date", Data.NULL_DATE_TIME),這個想法是走進Data的代碼裏面,找到相應的字段NULL_XXX並選擇你需要的。

回答

1

嘗試使用Data.NULL_STRING代替空值。

有關於我們如何處理JSON的詳細文檔null here

注意:我是google-http-java-client的項目所有者。

+0

嗨,tks回答和抱歉,遲到的答覆。當我嘗試解決方案時,出現以下錯誤:'ava.lang.IllegalArgumentException:無法將com.google.api.client.util.DateTime字段com.google.api.services.calendar.model.EventDateTime.dateTime設置爲java。 lang.String' – 2013-08-06 05:34:35

+0

哦,NULL_DATE_TIME的作品,tks。在我的文章更新,你可以更新你的答案,所以我可以打勾(只爲其他人立即看到),歡呼聲。 – 2013-08-06 05:59:34