检查JSONObject返回null

时间:2015-06-04 23:00:34

标签: java json

几个小时以来,我一直在看着一件看似简单的事情。我有一个简单的服务,并从API返回一些json。在大多数情况下,成功的回报会产生类似的结果:

{"userId":"GyOjEqOM97B","userName":"marcos","userPermissions":"admin"}

但在某些情况下,我很容易得到null的响应。不是空的JSON数组,而只是null。我尝试对response.toString()进行空检查,因为它返回null但我从未在条件中找到else子句,它总是返回错误为的堆栈跟踪:

A JSONObject text must begin with '{' at character 1 of null

我也尝试过isNull方法,但会得到相同的结果。这是我的代码。任何想法,我做错了,这必须是我想念的简单。谢谢你的帮助!

InputStream input = conn.getInputStream()
BufferedReader rd = new BufferedReader(new InputStreamReader(input))
String line
StringBuffer response = new StringBuffer();

while((line = rd.readLine()) != null) {
   response.append(line)                
}

if(response.toString() != null || response.toString() != "null"){
    return new JSONObject(response.toString())
} else {
    //do something else
}

1 个答案:

答案 0 :(得分:1)

drpDownMenu.Items.Insert(0, new ListItem("<Select Device>", "0"));
drpDownMenu.Items.SelectedIndex = 0;

请注意&amp;&amp; 而不是 || (我确信这首先是您的意思)。

修改

只需仔细阅读您的代码:您不需要第一次空检查,您知道StringBuffer不能为null,并且其.toString()也不会返回null。所以,只需:if(response != null && !response.toString().equals("null")){ return new JSONObject(response.toString()) } else { //do something else }