好吧,我想知道这可能是非常简单和愚蠢的,但经过一段时间的斗争,我不知道发生了什么.
我正在使用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.
提前致谢.
解决方法
我相信你需要在GSON中使用getAsString(). toString()将添加引号!