OK, zastanawiam się, czy to może być dość proste i głupie, ale po chwili walki z sytuacją nie mam pojęcia, co się dzieje.Gson, JsonElement, Porównanie ciągów w Javie
Używam Gsona do obsługi kilku elementów JSON. Gdzieś w moim kodzie otrzymuję jeden z JsonElements z JsonObject jako String i porównuję go z innym Stringiem. O ile widzę, oba są równe, ale przy porównywaniu zawsze otrzymuję fałszywe. Oto fragment.
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)) {
...
Nigdy nie przechodzi do instrukcji if.
arr ma element na indeksie 0, jsonobj ma pole o nazwie "coolname" i jeśli println model_elem otrzymam "bla bla bla" (taki sam jak STUPID_STRING). Próbowałem equals(), a także compareTo() == 0.
Nie mogę dowiedzieć się, co się tutaj dzieje, czy ktoś wie? : -s.
Z góry dziękuję.
OMG GUYS !! Odkryłem problem !. – Ole
też tam byłem. patrząc na dwa równe łańcuchy, nie zauważysz dodatkowych cytatów. :) –
masz całkowitą rację, to był problem ... Nie wiem jak to powiedzieć ... to powinno być udokumentowane w JsonElement.toString() i JsonElement.getAsString() xDD – Ole