Android, cercando di analizzare i dati json per android

Sto cercando di leggere un database nel mio da un DB remoto, poiché sto utilizzando un codice php per connettersi al mio DB MySQL e per interrogare il mio DB:

Nome del file: check.php:

  • Creazione della chiave pubblica RSA dalla string
  • GoogleApiClient onConnectionSuspended, devo call nuovamente mGoogleApiClient.connect ()?
  • Imposta il valore predefinito di una colonna intera SQLite
  • Scaricamento asincrono di bitmap in un adattatore, con particolare attenzione a Bitmap.recycle ()
  • Cambiare il colore della barra progressiva tramite CODICE SOLO in Android
  • Come rimuovere la libreria di supporto (appcompat_v7)
  • <?php require_once("php/dbconnect.php"); $query = "SELECT name FROM user "; $result = mysql_query($query) or die("Unable to verify user because : " . mysql_error()); while ( $row = mysql_fetch_arrays( $result ) ) { $output[]=$row['name']; } print(json_encode($output)); mysql_close(); ?/> 

    E il codice Java (Android) per connettersi al DB remoto:

     import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; import java.net.URI; public class ConnectToMyDb extends Activity { InputStream is; private HttpPost httppost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String result = ""; //http post try{ HttpClient httpclient = new DefaultHttpClient(); httppost = new HttpPost("http://www.Myurl.com/check.php"); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); Log.e("log_tag", "connection success "); Toast.makeText(getApplicationContext(), "pass", Toast.LENGTH_SHORT).show(); }catch(Exception e){ Log.e("log_tag", "Error in http connection "+e.toString()); Toast.makeText(getApplicationContext(), "fail", Toast.LENGTH_SHORT).show(); } //convert response to string 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"); Toast.makeText(getApplicationContext(), "pass", Toast.LENGTH_SHORT).show(); } is.close(); result=sb.toString(); }catch(Exception e){ Log.e("log_tag", "Error converting result "+e.toString()); Toast.makeText(getApplicationContext(), "fail", Toast.LENGTH_SHORT).show(); } //parse json data try{ //ArrayList<Messages> result1 = new ArrayList<Messages>(); JSONArray jArray = new JSONArray(result); JSONObject json_data= new JSONObject(result); for(int i=0;i<jArray.length();i++){ json_data = jArray.getJSONObject(i); Log.i("log_tag"," name: "+json_data.getString("name"); Toast.makeText(getApplicationContext(), "pass", Toast.LENGTH_SHORT).show(); } }catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); Toast.makeText(getApplicationContext(), "fail", Toast.LENGTH_SHORT).show(); } } 

    Il mio problema non è la connessione, ma il parsing del json ho un'exception:

     Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONArray 

  • Come rilevare il dispositivo è Android o tablet Android?
  • Android SDK 22 - SearchView problemi di rendering
  • Limitare la ricezione trasmittente all'applicazione
  • La mia applicazione cordova non viene avviata dopo che il tag NFC rileva
  • TabHost con frammenti e azione di frammento
  • Discorso al text dal proprio file audio
  • 2 Solutions collect form web for “Android, cercando di analizzare i dati json per android”

    Sbarazzavo di questa linea:

     JSONArray jArray = new JSONArray(result); 

    e fai invece questo:

     JSONObject json_data = new JSONObject(result); JSONArray nameArray = json_data.names(); JSONArray valArray = json.toJSONArray(nameArray); 

    Credo che questo sia corretto, tuttavia, si prega di studiare questo tutorial, che functionrà per voi:

    Android come un client riposante

    Sembra che la string che si sta tentando di convertire in JSON (cioè il result ) è in realtà una risposta HTTP completa. Per poter passare il tuo codice, ti serve solo il JSON crudo, escluso l'HTML.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.