2016-03-29 19 views
0

Ich brauche Hilfe für meinen Android-Code. Ich möchte alle Elemente meiner Web-Service zeigen, sondern auch wegen der Linien:Android listView

result = sb.toString(); 
jArray = new JSONArray(result); 
return (JSONObject) jArray.get(0);  

nur zeigt mir ein Element.

Ich kann nicht eine Schleife, die Können Sie mir helfen iteriert durch meine Web-Service

geht?

Hier sind die Codezeilen für einen Besuch:

private JSONObject lireJson() 
{ 
    String myurl = "http://www.siomende.fr/anoll/Vala/ws/ws.php?action=getRdv"; 
    InputStream is = null; 
    String result = ""; 
    JSONArray jArray = null; 
    try 
    { 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpGet httpget = new HttpGet(myurl); 
     HttpResponse response = httpclient.execute(httpget); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 
     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(); 
     jArray = new JSONArray(result); 
     return (JSONObject) jArray.get(0); 
    } 
    catch (Exception e) 
    { 
     erreurWS = true; 
     e.printStackTrace(); 
     return null; 
    } 
} 
private void jsonToTextView(JSONObject json) 
{ 
    try 
    { 
     // Getting JSON Object 
     JSONObject c = json; 
     // Storing JSON item in a Variable 
     int idR = c.getInt("idR"); 
     String lieuR = c.getString("lieuR"); 
     String dateR = c.getString("dateR"); 
     String dureeR = c.getString("dureeR"); 
     p = new heure(lieuR, dateR, dureeR); 
     p.setId(idR); 
     genererTweets(); 
     for (int j = 0; j < c.getJSONArray("voiture").length(); j++) 
     { 
      JSONObject e = c.getJSONArray("voiture").getJSONObject(j); 
      int idV = e.getInt("idV"); 
      String plaque = e.getString("plaque"); 
      String marque = e.getString("marque"); 
      Voiture voiture = new Voiture(plaque, marque); 
      voiture.setIdV(idV); 
      genererTweets(); 
      tweets.add(new Voiture(voiture.getMarqueV(), voiture.getPlaqueImmatriculationV())); 
      p.ajoutVoiture(voiture); 
     } 
    } 
    catch (JSONException e) 
    { 
     e.printStackTrace(); 
    } 
} 
+0

Warum Sie '' return (JSONObject) jArray .get (0); '', es gibt nur ein Element im Array zurück. –

+0

Ja, ich weiß, es gibt nur einen Artikel und ich will alle Artikel ... – krowry

Antwort

0

Machen Sie Ihre Methode Rückgabetyp JSONArray und statt return (JSONObject) jArray.get(0); Sie gerade schreiben return (JSONArray)jArray; Dann werden Sie ein Array erhalten, die Sie in einer for-Schleife verwenden können.

+0

Ich versuche Sie Lösung Shekhar, aber wenn ich (JSONArray) jArray benutze ich habe einen anderen Fehler hier: geschützt Void DoInBackground (Void ... args) { JSONArray jsonProduits = lireJson(); if (! ErreurWS) jsonToTextView (jsonProduits); Rückgabewert null; } ' Fehler für jsonProduits'" jsonToTextView (org.JSON.Object) in JSONPARSE kann nicht auf org.json.JSONArray angewendet werden "und wenn ich versuche, JSONObject zu schreiben jsonProduits = lireJson(); Er möchte, dass ich JSONArray schreibe .... – krowry

+0

@krowry Bitte bearbeiten Sie Ihre Frage oben. Wie Sie sehen können, sieht Code in den Kommentaren nicht gut aus. –

+0

versuchen Sie Ihre Lösung Shekhar, aber wenn ich '(JSONArray) jArray' ich habe einen anderen Fehler hier: 'Geschützte Void DoInBackground (Void ... args) {JSONArray jsonProduits = lireJson(); if (! erreurWS) jsonToTextView (jsonProduits); null zurückgeben; } '' Fehler für jsonProduits' "jsonToTextView (org.JSON.Object) in JSONPARSE kann nicht auf org.json.JSONArray angewendet werden" und wenn ich versuche, 'JSONObject jsonProduits = lireJson() zu schreiben;' Er möchte, dass ich JSONArray schreibe .. .. – krowry

0

1. Änderungsfunktion lireJson mit Rückgabewert ist JSONArray:

private JSONArray lireJson(){ 

String myurl = "http://www.siomende.fr/anoll/Vala/ws/ws.php?action=getRdv"; 
InputStream is = null; 
String result = ""; 
JSONArray jArray = null; 
try 
{ 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpGet httpget = new HttpGet(myurl); 
    HttpResponse response = httpclient.execute(httpget); 
    HttpEntity entity = response.getEntity(); 
    is = entity.getContent(); 
    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(); 
    jArray = new JSONArray(result); 
    return jArray; 
} 
catch (Exception e) 
{ 
    erreurWS = true; 
    e.printStackTrace(); 
    return null; 
} 
} 

2. konvertieren JSONArray zu JSONObject

private void jsonToTextView(JSONArray jArray){ 
try 
{ 
    // Getting JSON Object 
    for (int i = 0; i <jArray.length(); i++){ 
     JSONObject obj = jArray.getJSONObject(i); 
     //Do anything with obj 
    } 
} 
catch (JSONException e) 
{ 
    e.printStackTrace(); 
} 
}