Android 检查是否从外部服务检索空值

Android 检查是否从外部服务检索空值,android,json,web-services,Android,Json,Web Services,我正在从外部数据库检索值,并将其输入到android应用程序中,对服务器上的服务进行调用。以下是php文件: $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (!$mysqli) { die('Connect Error (' . mysqli_connect_errno() . ') ' . sqli_connect_error()); } $q=mysqli_query($mysqli, "SELE

我正在从外部数据库检索值,并将其输入到android应用程序中,对服务器上的服务进行调用。以下是php文件:

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if (!$mysqli) {
    die('Connect Error (' . mysqli_connect_errno() . ') ' . sqli_connect_error());
}

$q=mysqli_query($mysqli, "SELECT title FROM post WHERE UPPER(title) LIKE UPPER('%" . $_REQUEST['searchThis'] . "%')");

while($e=mysqli_fetch_assoc($q)){
    $output[]=$e;
}

print(json_encode($output)); 
mysqli_close();
这就是我的类所做的(我只编写了重要的代码):


当服务器上的php服务返回一些东西时,它就工作了,问题是当我将结果与“null”进行比较时,它总是为false,即使结果是一个值为“null”的字符串。当然,我会遇到一个JSON异常,因为结果不是有效的转换格式。这里可能有什么错误?

你的代码似乎不考虑你追加的尾部换行符('\n)。

可以在while循环中删除换行符('\n')的追加,也可以在检查“null”时删除它

try{
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(URL);
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    is = entity.getContent();
}
catch(Exception e){
    Log.e("CONNECTION_ERROR", "Error in http connection "+e.toString());
}

try{
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
    StringBuilder sb = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null) {
        sb.append(line + "\n");
    }
    is.close();
    result=sb.toString();

        ///-------------SYSTEM OUTS---------------

    System.out.println(result);
    System.out.println(result.getClass().getName());
}
catch(Exception e){
    Log.e("BUFFER_ERROR", "Error converting result "+e.toString());
}

//------------------PROBLEMS---------------
if(result.equalsIgnoreCase("null")){
    list.add("empty");
}

else{
    try{
        JSONArray jArray = new JSONArray(result);
        for(int i=0;i<jArray.length();i++){
            JSONObject json_data = jArray.getJSONObject(i);
            //Log.i("result",json_data.getString("title"));
            String title = json_data.getString("title");
            list.add(title);
        }
    }
    catch(JSONException e){
        Log.e("DATA_PARSING_ERROR", "Error parsing data "+e.toString());
    }
}
return list;
null //FOR System.out.println(result);
java.lang.String //for System.out.println(result.getClass().getName());