0

我试着完成我的项目

这是我的程序

import java.util.ArrayList;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;




import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Search extends Activity {

   TextView error,br2;
   EditText namjal2;
   String i,returnString2;


    /** Called when the activity is first created. */

   @Override


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search);

        br2=(TextView)findViewById(R.id.berita2);
        namjal2=(EditText)findViewById(R.id.namjalSearch);




   }

   public void clickHandler(View view){
    Intent a = null;
    switch (view.getId()){
    case R.id.find:

ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();

postParameters.add(new BasicNameValuePair("nama_jalan", namjal2.getText().toString()));


/*            String valid = "1";*/      

        String response = null;

        try {

           response = CustomHttpClient.executeHttpPost("http://10.0.2.2/android/searchInfo.php", postParameters);


           String result = response.toString();  
           //parse json data

              try{
                      returnString2 = "";


                JSONArray jArray = new JSONArray(result);
                      for(int i=0;i<jArray.length();i++){

                              JSONObject json_data = jArray.getJSONObject(i);
                              Log.i("log_tag","id_kepadatan: "+json_data.getInt("id_kepadatan")+
                                      ", username: "+json_data.getString("username")+
                                      ", nama_jalan: "+json_data.getString("nama_jalan")+
                                      ", status: "+json_data.getString("status")+
                                      ", tanggal: "+json_data.getString("tanggal")+
                                      ", waktu: "+json_data.getString("waktu")+
                                      ", keterangan: "+json_data.getString("keterangan")
                              );

                              //Get an output to the screen
                              returnString2 += "\n" + json_data.getString("nama_jalan") + " mengalami "+ json_data.getString("status")+ " pada "+ json_data.getString("tanggal")+ " waktu "+ json_data.getString("waktu")+ " karena "+ json_data.getString("keterangan");
                      }
              }


              catch(JSONException e){
                      Log.e("log_tag", "Error parsing data "+e.toString());
              }

              try{


               br2.setText(returnString2);


              }


              catch(Exception e){

               Log.e("log_tag","Error in Display!" + e.toString());;          

              }   

         }

               catch (Exception e) {

          Log.e("log_tag","Error in http connection!!" + e.toString());     

         }
        break;

   case R.id.back:
        a = new Intent(this, Menu.class);
        startActivity(a);
        break;
}
   }


}

这是我的 searchInfo.php

<?php
    date_default_timezone_set('asia/jakarta');
    $skrg = time();
    $tgl = date("dmY",$skrg);

$conn = mysql_connect("localhost","root","");
    mysql_select_db("proyek akhir");

$query = "SELECT * FROM kepadatan WHERE nama_jalan = '". $_POST["nama_jalan"]."' AND tanggal ='$tgl'";
$result = mysql_query($query);
while($row=mysql_fetch_assoc($result))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>

当我部署到模拟器时,它会在 DDMS 中显示如下消息:

“错误解析数据 org.json.jsonexception value null of type org.json.JSONObject$1 无法转换为 JSONArray”

谁能告诉我为什么会这样?

我真的需要这个......因为这是我的最后一个项目,我只有 1 天的时间来完成这个......请帮助我

谢谢你

4

2 回答 2

0

每当您解析 Json 数据时,只需确保(检查是否)单个/数组数据不为空。如果你不检查它会抛出空指针异常。

于 2012-11-17T17:40:09.650 回答
0

您从数据库中获取的数据不是 UTF-8 编码,因此json_encode返回null而不是 JSON 对象。

于 2012-11-17T17:23:38.277 回答