Java 从PHP到Android的Bool HTTP响应

Java 从PHP到Android的Bool HTTP响应,java,php,android,mysql,httpresponse,Java,Php,Android,Mysql,Httpresponse,我在实现一个程序时遇到了一个小问题,该程序检查MySQL数据库中的值,然后根据值的存在返回“True”或“False”。我可以使用以下代码让PHP返回值(在本例中以“A”开头)(它还显示Java日志中的匹配行): 您已经足够接近了,但不要只返回True或False结果。我强烈推荐一位占位符,例如{result:True/False}作为回答。如果为True,则可以添加更多数据,如果为false,则不发送任何数据 因此,在android端,您将一直获得JSONObject。那就检查一下 if (

我在实现一个程序时遇到了一个小问题,该程序检查MySQL数据库中的值,然后根据值的存在返回“True”或“False”。我可以使用以下代码让PHP返回值(在本例中以“A”开头)(它还显示Java日志中的匹配行):


您已经足够接近了,但不要只返回True或False结果。我强烈推荐一位占位符,例如{result:True/False}作为回答。如果为True,则可以添加更多数据,如果为false,则不发送任何数据

因此,在android端,您将一直获得JSONObject。那就检查一下

 if (result != null && result.has("result")){
      if(result.optBoolean("result", false)){
              // Now parse and get all your data
      }else{
         // If you are running is thread, then run on UI thread and show Toast
     }
 }
<?php

mysql_connect("host","username","password");
mysql_select_db("Deal");

$sql = mysql_query("select * from CITY where CITY_NAME like 'A%'") or die(mysql_error());
if ($sql) {
    if(mysql_num_rows($sql) == 0) {
            $row = "False";
            print(json_encode($row);
            mysql_close();
    }

    else {
        $row = "True";
        //while($row = mysql_fetch_assoc($sql))
        //$output[]=$row;
        print(json_encode($row);
        //print(json_encode($output));
        mysql_close();
    }
}
?>
    public class CityActivity extends ListActivity {

    JSONArray jArray;
    String result = null;
    InputStream is = null;
    StringBuilder sb=null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    //http post
    try{
         HttpClient httpclient = new DefaultHttpClient();
         HttpPost httppost = new HttpPost("http://www.example.com/example.php");
         httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
         HttpResponse response = httpclient.execute(httppost);
         HttpEntity entity = response.getEntity();
         is = entity.getContent();
         }catch(Exception e){
             Log.e("log_tag", "Error in http connection"+e.toString());
        }
    //convert response to string
    try{
          BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
           sb = new StringBuilder();
           sb.append(reader.readLine() + "\n");

           String line="0";
           while ((line = reader.readLine()) != null) {
                          sb.append(line + "\n");
            }
            is.close();
            result=sb.toString();
            }catch(Exception e){
                  Log.e("log_tag", "Error converting result "+e.toString());
            }
    //paring datag

    try{
          jArray = new JSONArray(result);
          JSONObject json_data=null;
          for(int i=0;i<jArray.length();i++){
                 String myString ="";
                 json_data = jArray.getJSONObject(i);
                 int ct_id = json_data.getInt("CITY_ID");
                 String ct_name = json_data.getString("CITY_NAME");
                 myString = Integer.toString(ct_id);
                 Log.i(ct_name, myString);
             } 
          }
          catch(JSONException e1){
              Toast.makeText(getBaseContext(), "No City Found" ,Toast.LENGTH_LONG).show();
          } catch (ParseException e1) {
                e1.printStackTrace();
        }
    }
}
 if (result != null && result.has("result")){
      if(result.optBoolean("result", false)){
              // Now parse and get all your data
      }else{
         // If you are running is thread, then run on UI thread and show Toast
     }
 }