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 型 org.json.JSONObject$1 の値 null は JSONArray に変換できません」

なぜこれが起こっているのか誰にも教えてもらえますか?

私は本当にこれが必要です....これは私の最後のプロジェクトであり、これを完了するのに1日しかないため...助けてください

ありがとうございました

4

2 に答える 2

0

データベースからフェッチされたデータはUTF-8エンコーディングではないため、JSONオブジェクトの代わりにjson_encode戻ります。null

于 2012-11-17T17:23:38.277 に答える
0

Jsonデータを解析するときはいつでも、データの単一/配列がnullでないことを確認してください。チェックしないと、Null Pointer Exception がスローされます。

于 2012-11-17T17:40:09.650 に答える