2013-05-16 26 views
6

好吧,我想知道這可能是相當簡單和愚蠢的,但經過一段時間與情況作鬥爭,我不知道發生了什麼。Gson,JsonElement,在Java中的字符串比較

我正在使用Gson來處理一些JSON元素。在我的代碼中的某處,我將JsonObject的JsonElements之一作爲String,並將其與另一個String進行比較。據我可以看到他們都是平等的,但比較時,我總是得到錯誤。這是片段。

JsonArray arr; 
    JsonObject jsonobj; 
    JsonElement model_elem; 
    String STUPID_STRING = "bla bla bla"; 

    // Previously we initializes and fill arr, it doesn't matter how... I hope 
    jsonobj = arr.get(0).getAsJsonObject(); 
    model_elem = jsonobj.get("coolname"); 
    if (model_elem.toString().equals(STUPID_STRING)) { 
     ... 

它永遠不會進入if語句。

arr在索引0處有元素,jsonobj有一個名稱爲「coolname」的字段,如果我println model_elem我得到「bla bla bla」(與STUPID_STRING相同)。我曾嘗試equals()和compareTo()== 0.

我無法弄清楚這裏發生了什麼,有人知道嗎? :-s。

在此先感謝。

回答

13

我相信你需要在GSON上使用getAsString()toString()會加引號!

+0

OMG GUYS !!我發現了這個問題! – Ole

+0

我也去過那裏。盯着兩個相同的字符串,你不會注意到額外的引號。 :) –

+0

你是完全正確的,這是問題......我不知道該怎麼說......應該記錄在JsonElement.toString()和JsonElement.getAsString()xDD – Ole