0

我得到了一个 HttpResponse,它得到了一个 json 响应。

现在,如果 json 响应包含数据,则一切正常,但只要 json 为空,我的应用程序就会崩溃。

我一直在尝试遵循代码但无济于事。

(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

它总是返回“我不是空的”

虽然日志说 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") 

结果“我为空”

4

2 回答 2

2

你没有null. StringBuilder当转换为 a 时,您有aString包含值"null"

比较字符串不要使用==操作符。相反,您应该转换为 aString并使用该equals方法。

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

==运算符比较引用,并且仅当操作数是对同一对象的引用(或两个空引用)时才返回 true 。该equals方法比较这些值。

有关的

于 2012-12-22T12:34:26.660 回答
0

如果你得到一个空结果比较空指针:result11 == null

于 2012-12-22T12:31:36.953 回答