Salut à tous,
Je suis nouvelle dans la programmation et j'aimerais bien qu'on m'explique comment utiliser le JSON objet. Tous les tutoriels que j'ai trouvés expliquent plutôt comment utiliser le JSON array. Merci d'avance pour votre aide.
Salut à tous,
Je suis nouvelle dans la programmation et j'aimerais bien qu'on m'explique comment utiliser le JSON objet. Tous les tutoriels que j'ai trouvés expliquent plutôt comment utiliser le JSON array. Merci d'avance pour votre aide.
Aurais-tu des exemples de code de ce que tu souhaites faire exactement.
Sans demande plus précise, on ne pourra t'aiguiller.
Je te conseille quand même ce tutoriel, qui montre l'utilisation des JSONObject.
Certes, ce tutoriel instancie un JSonArray depuis le résultat, mais l'instanciation est la même pour un JSonObject.
salut Gahfy,
voici mon code:
le code fonctionne malheureusement ca ne fait pas ce q je veux....ca ne lit pas les données du Json suivant url: http://bucapp.de/bcarest.php?getMember=1
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 public class Vue2 extends Activity { public static final String JSON_STRING="{\"member\":{\"id\":1,\"company\":\"Creative AdIT\",\"firstname\":\"0\",\"lastname\":\"Witte\"}}"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.bc_layout); TextView textView1=(TextView)findViewById(R.id.textView1); try{ JSONObject emp=(new JSONObject(JSON_STRING)).getJSONObject("member"); int id =emp.getInt("id"); String company = emp.getString("company"); String firstname = emp.getString("firstname"); int lastname=emp.getInt("lastname"); String str="ID:"+id+"\n"+"Company:"+company+"\n"+"Firstname:"+firstname+"\n"+"Lastname:"+lastname; textView1.setText(str); }catch (Exception e) {e.printStackTrace();} }
le tutorial que m a conseilé a appliqué la meme methode
C'est bien tu as fait une bonne partie des étapes déjà.
Si on prend le code complet, que fait-il ?
a) Il met en place les views dans l'activité (conseil #1: utilise des noms explicites pour tes classes. Vue2 n'est pas explicite. VueDunMembreActivity l'est déjà plus).
b) Il va chercher des données
c) Il affiche ces données dans les views.
Donc sépare le code pour que ces 3 élements soient bien des fonctions séparées:
a) => onCreate (et lancement de b)
b) => "loadData" (et lancement de c)
c) => "setData"
Comme la partie "b" est potentiellement longue, on utilse une tâche asynchrone pour la réaliser (AsyncTask)
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 class Vue2 extends Activity { private static final String JSON_STRING="{\"member\":{\"id\":1,\"company\":\"Creative AdIT\",\"firstname\":\"0\",\"lastname\":\"Witte\"}}"; private TextView tv; // <= trouver un nom explicite pour ce TextView @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.bc_layout); this.tv = (TextView) findViewById(R.id..textView1); // <= là encore textView1 c'est pas très explicite ! new LoadDataTask().execute(); } class LoadDataTask extends AsyncTask<Void,Void,String> { public String doInBackground() { try { return JSON_STRING; } catch (Exception e) { Log.e("Vue2","Data loading error",e); return null; } } public void onPostExecute(String data) { if (data != null) { try { JSONObject emp=(new JSONObject(data)).getJSONObject("member"); int id =emp.getInt("id"); String company = emp.getString("company"); String firstname = emp.getString("firstname"); int lastname=emp.getInt("lastname"); String str="ID:"+id+"\n"+"Company:"+company+"\n"+"Firstname:"+firstname+"\n"+"Lastname:"+lastname; Vue2.this.setData(str); } catch (Exception e) { Log.e("Vue2","Erreur de lecture JSON",e); // <= on utilise les fonctions de Log Android, bien pratiques ! } } } } void setData(String str) { this.tv.setText(str); } }
Une fois que tout est bien découpé on voit que la seule partie à remplacer est la partie "return JSON_STRING" dans le doInBackground pour aller chercher sur un web-service....
HttpClient / UrlConnection après y a que l'embarras du choix pour récupérer les données....
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 HttpClient client = AndroidHttpClient.newInstance("monApp"); HttpGet request = new HttpGet("http://bucapp.de/bcarest.php?getMember=1"); HttpResponse response = client.execute(request); return EntityUtils.toString(response.getEntity(),"UTF-8");
Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...
Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
Tu peux trouver la réponse à ta question dans la FAQ
Retrouvez mon tutoriel sur la consommation des services web SOAP
Pense à voter positivement en appuyant sur
en bas à droite de la réponse qui t'a donné une piste de solution.
Partager