6

わかりました、これは非常に単純でばかげているのではないかと思いますが、しばらく状況と戦った後、何が起こっているのかわかりません。

私はいくつかの JSON 要素を処理するために Gson を使用しています。私のコードのどこかで、JsonObject の JsonElements の 1 つを文字列として取得し、それを別の文字列と比較します。私が見る限り、それらは両方とも等しいですが、比較すると常にfalseになります。これがスニペットです。

    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。

前もって感謝します。

4

1 に答える 1

14

getAsString()GSON で使用する必要があると思います。toString()引用符を追加します!

于 2013-05-16T10:49:29.383 に答える