几个小时以来,我一直在看着一件看似简单的事情。我有一个简单的服务,并从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
}
答案 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
}