2013-04-29 54 views
0

在我的PHP文件中,当从MySQL数据库获取值时,如果数据库中存在ny行,它将返回正确的值,但是当数据库中不存在行时,则返回false值json_encode 我的PHP代码:如何处理jsonarray中的假值

<?php 

    $con = mysql_connect("localhost","root",""); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

     mysql_select_db("meetingschedulardata", $con); 

     $mdate=$_GET['mdate']; 
    //$mdate= '28-April-2013'; 
     $date = strtotime($mdate); 
    $new_date = date('Y-m-d', $date); 


     $sql=mysql_query("select * from meetingdetails where mdate='$new_date'",$con); 
    $row=mysql_num_rows($sql); 
    if($row===0) 
    { 
     $output[][]=false; 
     print(json_encode($output)); 
    } 
    else 
    { 
     while($row=mysql_fetch_assoc($sql)) 
      $output[][]=$row; 
     print(json_encode($output)); 
    } 


     mysql_close(); 

?> 

我的Java代码,其中IM解析JSON值是:

try{ 

     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://10.0.2.2/meetingschedular/viewdetail.php?mdate="+currentDateandTime); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 
     } 
     catch(Exception e) 
     { 
      Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show(); 
     } 

     //Convert response to string 
     try 
     { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8")); 
      sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) 
       { 
        sb.append(line + "\n"); 
       } 
       is.close(); 
       result = sb.toString();     
     } 
     catch(Exception e) 
     { 
      Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show(); 
     } 
     //END Convert response to string 

      try 
      {    
       JSONArray jArray = new JSONArray(result); 

        for(int i=0;i<jArray.length();i++) 
        { 
         JSONArray innerJsonArray = jArray.getJSONArray(i); 
         JSONObject json_data = innerJsonArray.getJSONObject(0);      
         String at= json_data.getString("attendees"); 
         String at1=json_data.getString("title");      
         String at2=json_data.getString("mtime"); 
         String at3=json_data.getString("venue"); 
         s.append(j+"Attendees:"+at); 
         s.append("\nTitle:"+at1); 
         s1.append("Time:"+at2); 
         s1.append("\nVenue:"+at3); 

         r.add(s.toString()); 
         r.add(s1.toString()); 
         j++; 
        } 

       l.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, r)); 

      } 

      catch(Exception e1) 
      { 

       Toast.makeText(getBaseContext(),e1.toString(),Toast.LENGTH_LONG).show(); 
      } 

,我没有得到我将如何处理,如果json_encode返回false值,并表现出一定的吐司响应错误的价值。请帮助我。 :(

+0

你是什​​么意思的虚假价值? – 2013-04-29 09:35:32

+0

虚假的价值,我们从php页面获得.... – priya89 2013-04-29 10:21:27

回答

0

你的PHP代码中删除的虚假插入,如果块取出,并简单地允许发送一个空的JSON。你似乎已经建立了适当的catch块来处理你的吐司消息。

+0

雅但我想显示另一味精不是例外..我将如何做到这一点? – priya89 2013-04-29 10:19:42