这将修复您的代码:
jArray = (result == null) ? new JSONArray() : new JSONArray(result);
现在您有了一个空的JSONArray,稍后您将可以在程序中测试空的JSONObjects。如果找到一个,许多JSON方法都会返回JSONObject;如果不存在,则返回null。
您可能还想使用 无参数 JSON构造函数初始化JSONObject ,而不是简单地将其设置为null。当将其传递给其他JSON方法时(例如在构造函数中将其用于JSONArray()时,它将避免出现问题):
JSONObject json_data = new JSONObject();
最后,如果仍然得到JSONException
s,那是因为您实际上没有将有效的JSON字符串传递给构造函数。您可以result
在日志中打印出的值:
Log.d("JSON Data", result);
您可能会看到一些sql错误文本,或者如果您从Web服务器中检索到HTTP错误代码(如果您的网址不正确,则会显示404错误代码)。
如果您的结果 看起来 像JSON,那么您可以使用JSONLint验证器验证它是否实际上是有效的JSON 。它将帮助您捕获可能存在的任何错误,尤其是如果您自己格式化JSON时。