0

json 応答を取得する HttpResponse を取得しました。

json 応答にデータが含まれている場合はすべて正常に動作しますが、json が null の場合は常にアプリケーションがクラッシュします。

コードをたどろうとしましたが、役に立ちませんでした。

(sb = json レスポンス)

Object result11 = sb;
Log.d("Result11", result11.toString());

if (result11 == JSONObject.NULL)
    Log.d("if", "I am NULL");
else
    Log.d("else", "I am not null");

私はresult11を以下と比較してみました:

null, "", "null", JSONObject.NULL

常に「私はnullではありません」を返します

ログには、Resul11 = null と表示されます。

どんな助けでも大歓迎です。前もって感謝します。

編集:

Object result11 = sb;
            Log.d("Result11", result11.toString());

            StringBuilder test = (StringBuilder)result11;

            if (test.toString().equals("null"))
                Log.d("if", "I am NULL");
            else
                Log.d("else", "I am not null");

@Mark Byersによるソリューション

test.toString().trim().equals("null") 

「I AM NULL」という結果になります

4

2 に答える 2

2

を持っていませんnullStringBuilderに変換すると、String値が含まれる があります"null"

==文字列を比較するには、演算子を使用しないでください。代わりに、 に変換して メソッドStringを使用する必要がありますequals

StringBuilder stringBuilder = (StringBuilder)result11;
String trimmed = stringBuilder.toString().trim();
if (trimmed.equals("null")) { ... }

演算子は==参照を比較し、オペランドが同じオブジェクトへの参照 (または両方の null 参照) である場合にのみ true を返します。メソッドはequals値を比較します。

関連している

于 2012-12-22T12:34:26.660 に答える
0

null ポインターと比較して null の結果が得られた場合:result11 == null

于 2012-12-22T12:31:36.953 に答える