好的,我想知道这可能是非常简单和愚蠢的但是经过一段时间的斗争,我不知道发生了什么。
我正在使用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
提前致谢。
答案 0 :(得分:14)
我相信您需要在GSON中使用getAsString()
。 toString()
会添加引号!