Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mettre du contenu JSON dans une listView

    12 août 2018 à 18:13:35

    Bonjour, 

    J'essaye de récupérer les articles sous forme de tableau JSON, et de les mettre dans une listView mais j'ai cette erreur : 

    Je vous remercie.

    I/System.out: Résultats : [{"0":"9","ID":"9","1":"f","Nom":"f","2":"f","Descriptif":"f","3":"2000","Prix":"2000","4":"Neuf","Etat":"Neuf","5":"f","Ville":"f","6":"Envoy\u00e9","Livraison":"Envoy\u00e9"},{"0":"18","ID":"18","1":"PC","Nom":"PC","2":"Acer","Descriptif":"Acer","3":"1010","Prix":"1010","4":"Neuf","Etat":"Neuf","5":"Charleroi","Ville":"Charleroi","6":"Envoy\u00e9","Livraison":"Envoy\u00e9"}]

    I/System.out: Exception: Value of type java.lang.String cannot be converted to JSONArray

    package com.example.davidwolfs.projet_annonce;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.TableLayout;
    import android.widget.TableRow;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.json.JSONArray;
    import org.json.JSONObject;
    import org.w3c.dom.Text;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URI;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by David Wolfs on 07-08-18.
     */
    
    public class RechercherArticlePrix extends AsyncTask {
        private double prixMin;
        private double prixMax;
        public AsyncResponse delegate = null;
        String json_url;
        String JSON_STRING;
        ListView listView;
    
    
        public RechercherArticlePrix(double prixMin, double prixMax) {
            this.prixMin = prixMin;
            this.prixMax = prixMax;
            this.listView = listView;
        }
    
        public double getPrixMin() {
            return prixMin;
        }
    
        public void setPrixMin(double prixMin) {
            this.prixMin = prixMin;
        }
    
        public double getPrixMax() {
            return prixMax;
        }
    
        public void setPrixMax(double prixMax) {
            this.prixMax = prixMax;
        }
    /*
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_afficher_article_par_prix);
    
            this.tableLayout = (TableLayout) findViewById(R.id.tableLayout);
            this.tableRow = (TableRow) findViewById(R.id.tableRow);
            this.lv = (ListView) findViewById(R.id.listView);
    
    
            String[] prenoms = new String[]{
                    "Antoine", "Benoit", "Cyril", "David", "Eloise", "Florent",
                    "Gerard", "Hugo", "Ingrid", "Jonathan", "Kevin", "Logan",
                    "Mathieu", "Noemie", "Olivia", "Philippe", "Quentin", "Romain",
                    "Sophie", "Tristan", "Ulric", "Vincent", "Willy", "Xavier",
                    "Yann", "Zoé"
            };
            adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, prenoms);
            lv.setAdapter(adapter);
    
           RechercherArticlePrix_AsyncTask rechercherArticlePrix_AsyncTask = new RechercherArticlePrix_AsyncTask();
            rechercherArticlePrix_AsyncTask.execute();
        }*/
    
            @Override
            protected void onPreExecute() {
    
            }
    
            @Override
            protected Object doInBackground(Object[] objects) {
                {
               /* try{
                    String link = "http://localhost/annonce/connectToDB.php";
    
                    URL url = new URL(link);
                    HttpClient client = new DefaultHttpClient();
                    HttpGet request = new HttpGet();
                    request.setURI(new URI(link));
                    HttpResponse response = client.execute(request);
                    BufferedReader in = new BufferedReader(new
                            InputStreamReader(response.getEntity().getContent()));
    
                    StringBuffer sb = new StringBuffer("");
                    String line="";
    
                    while ((line = in.readLine()) != null) {
                        sb.append(line);
                        break;
                    }
    
                    in.close();
                    return sb.toString();
                } catch(Exception e){
                    return new String("Exception: " + e.getMessage());
                }
            }*/
                    try {
                        String link = "http://192.168.1.44:80/annonce/rechercherArticlePrix.php";
                        String data = URLEncoder.encode("prixMin", "UTF-8") + "=" +
                                URLEncoder.encode(prixMin + "", "UTF-8");
                        data += "&" + URLEncoder.encode("prixMax", "UTF-8") + "=" +
                                URLEncoder.encode(prixMax + "", "UTF-8");
    
                        System.out.println(link + data);
                        URL url = new URL(link);
                        URLConnection conn = url.openConnection();
    
                        conn.setDoOutput(true);
                        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    
                        wr.write( data );
                        wr.flush();
    
                        BufferedReader reader = new BufferedReader(new
                                InputStreamReader(conn.getInputStream()));
    
                        StringBuilder sb = new StringBuilder();
                        String line = null;
    
                        // Read Server Response
                        while ((line = reader.readLine()) != null) {
                            sb.append(line);
                            break;
                        }
                        System.out.println("Resultat requete Rechercher article prix : "+sb.toString());
                        String result = sb.toString();
                        System.out.println("Résultats : " + result);
    
                        JSONArray ja = new JSONArray(result);
                        JSONObject jo = null;
                        // data = new String[ja.length()];
    
                        for (int i = 0; i < ja.length(); i++) {
                            jo = ja.getJSONObject(i);
                            System.out.println(jo);
                            //data[i] = jo.getString("Name");
                        }
                        result = sb.toString();
                        return sb.toString();
                    } catch (Exception e) {
                        System.out.println("Exception: " + e.getMessage());
                        return new String("Exception: " + e.getMessage());
                    }
                }
            }
    
            protected void onProgressUpdate(String... values) {
    
            }
    
    
            protected void onPostExecute(String result) {
                delegate.processFinish(prixMin+"");
                //Toast.makeText(this, result, Toast.LENGTH_SHORT).show();
                System.out.println("RESULTAT  : " + result);
            }
    
    }
    
    



    • Partager sur Facebook
    • Partager sur Twitter

    Mettre du contenu JSON dans une listView

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown