IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

recuperation des données JSON android dans différents champs


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 56
    Par défaut recuperation des données JSON android dans différents champs
    bonjour
    j'ai créer une conexion entre android et bdd firbird , j'ai reussi a recupérer les donné avec json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    import android.annotation.TargetApi;
    import android.app.Activity;
    import android.os.Build;
    import android.os.Bundle;
    import android.os.StrictMode;
    import android.util.Log;
    import android.widget.LinearLayout;
    import android.widget.TextView;
     
    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 java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
     
     
    public class MainActivity extends Activity {
        TextView txt;
        @TargetApi(Build.VERSION_CODES.GINGERBREAD)
        @Override
     
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
     
                LinearLayout rootLayout = new LinearLayout(getApplicationContext());
                txt = new TextView(getApplicationContext());
                rootLayout.addView(txt);
                setContentView(rootLayout);
     
                // Définir le texte et appeler la fonction de connexion.
                txt.setText("Connexion...");
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
                // Appeler la méthode pour récupérer les données JSON
                txt.setText(getServerData(strURL));
            }
     
            // Mettre l'adresse du script PHP
            // Attention localhost ou 127.0.0.1 ne fonctionnent pas. Mettre l'adresse IP local.
            public static final String strURL = "http://192.168.1.15/ville.php";
     
            private String getServerData(String returnString) {
                InputStream is = null;
                String result = "";
                // Envoyer la requête au script PHP.
                // Script PHP : $sql=mysql_query("select * from tblVille where Nom_ville like '".$_REQUEST['ville']."%'");
                // $_REQUEST['ville'] sera remplacé par L dans notre exemple.
                // Ce qui veut dire que la requête enverra les villes commençant par la lettre L
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("ID","NAME"));
     
                // Envoie de la commande http
                try{
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost(strURL);
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();
     
                }catch(Exception e){
                    Log.e("log_tag", "Error in http connection " + e.toString());
                }
     
                // Convertion de la requête en 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");
                    }
                    is.close();
                    result=sb.toString();
                }catch(Exception e){
                    Log.e("log_tag", "Error converting result " + e.toString());
                }
                // Parse les données JSON
                try{
                    JSONArray jArray = new JSONArray(result);
                    for(int i=0;i<jArray.length();i++){
                        JSONObject json_data = jArray.getJSONObject(i);
                        // Affichage ID_ville et Nom_ville dans le LogCat
                        Log.i("log_tag","Identifiant: "+json_data.getInt("ID")+
                                        ", Nom: "+json_data.getString("NAME")
                        );
                        // Résultats de la requête
                        returnString += "\n\t" + jArray.getJSONObject(i);
                    }
                }catch(JSONException e){
                    Log.e("log_tag", "Error parsing data " + e.toString());
                }
                return returnString;
            }
        }

    jai le resulta sur un emulateur avec une liste , je cherche comment specifier le champ ou s 'affiche la donné , par exmple si je veux les produit j le recoi dans le champ poduits ............

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    Beurk

    Non sans déconner, ce code là ne devrait même pas exister (c'est comme les appels à System.exit(0); .... )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log.e("log_tag", "Error parsing data " + e.toString());
    Beurk beurk bis
    on préfère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log.e("UnTrucQuiVeutDireQuelqueChoseEtPasLogTag","Error parsing data",e); // ,e pour passer l'exception en paramètre !!!!!
    Et je ne parle pas de la gestion d'exceptions (essaye en désactivant le serveur...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    Je n'en voit pas l'utilité... A moins de développer avec un minSdk antérieur à Android 2.3 (ouch....).



    Pour l'utilisation générale d'un web-service (passage de données à une UI):
    http://www.developpez.net/forums/blo...vice-partie-1/
    et surtout (pour le webservice call lui-même)
    http://www.developpez.net/forums/blo...vice-partie-2/


    Si tu suis les billets dans l'ordre tu vas:
    * Commencer par afficher des données de test comme tu le veux.
    * Remplacer ces données de test par les vraies données du web-service.
    (au passage ça permet aussi de pouvoir tester l'application sans avoir à démarrer le webservice).


    Dans tous les cas garde en mémoire de toujours séparer les "couches" d'abstraction, cela simplifie grandement le développement et la maintenance par la suite:
    1. Le Web-service donne du "Texte".
    2. La librairie JSON (new JSONObject(du texte)) donne une structure JSON
    3. Les objets de données Java s'initialisent depuis une structure JSON.
    4. La couche métier (l'interface en l’occurrence) utilisent les objets des données (et donc des données fortement typées).

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 56
    Par défaut
    merci pour la reponse ais di moi svp vous croyez que mon code n est pa bon d’âpre ta réponse ,

Discussions similaires

  1. Recuperation des données JSON
    Par pouti dans le forum Android
    Réponses: 1
    Dernier message: 24/04/2014, 08h32
  2. Réponses: 1
    Dernier message: 09/10/2007, 00h07
  3. [vb6] recuperer des données d'intrack dans un textbox
    Par martin199 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 05/09/2006, 17h44
  4. [Conception] Recuperer des données dans un tableau dynamique
    Par Tartanjet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2006, 00h28
  5. Réponses: 3
    Dernier message: 22/02/2004, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo