Gson,JsonElement,Java中的字符串比较

时间:2013-05-16 10:45:20

标签: java gson

好的,我想知道这可能是非常简单和愚蠢的但是经过一段时间的斗争,我不知道发生了什么。

我正在使用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

提前致谢。

1 个答案:

答案 0 :(得分:14)

我相信您需要在GSON中使用getAsString()toString()会添加引号!