JSON Object lädt nur 2 von 3 Objekten

D

DrLiightninG

Neues Mitglied
1
Hallo zusammen,
ich habe in einer MySQL Datenbank drei Datensätze. Diese sollen in meiner App per JSON ausgelesen werden und in einer ListView angezeigt werden. Zuvor dachte ich, dass dies einwandfrei funktioniert. Als ich aber heute den dritten Datensatz hinzugefügt habe, wurden trotzdem nur die beiden ersten angezeigt. jsonObject.length() gibt mir dabei auch nur die Länge 1 aus. Also beinhaltet JSON Object zwei Objekte (0 und 1). Aber wo ist das dritte Objekt (2) abgeblieben?
Bei einer Ausgabe des json_string habe ich gesehen, dass alle drei Datensätze vorhanden sind. Warum werden also nur die ersten beiden geladen?

Hier mein Code:
Code:
public void parseJSON() {

        if (json_string == null) {
            Toast.makeText(getActivity().getApplicationContext(), "Keine Partys gefunden", Toast.LENGTH_LONG).show();
        } else { //Suchergebnisse anzeigen

            JSONObject jsonObject;
            JSONArray jsonArray;

            String partyName;
            String clubName;
            String veranstalter;
            String datum;
            String zeit;
            String adresse;
            String stadt;
            String plz;
            String ticketverkauf;
            String age;
            int zusagen;
            int id;
            int count = 0;

            partyAdapter = new PartyAdapter(getActivity(),R.layout.list_item_new);
            partyAdapter.setAct(this);
            partyList.setAdapter(partyAdapter);

            try {
                jsonObject = new JSONObject(json_string); //Den json_string habe ich mir ausgeben lassen. Er beinhaltet 3 Objekte
                Toast.makeText(getActivity().getApplicationContext(), "JSON Object Länge: " + jsonObject.length(), Toast.LENGTH_LONG).show(); //Hier bekomme ich als Länge den Wert 1
                jsonArray = jsonObject.getJSONArray("server_response");
                while (count <= jsonObject.length()) {
                  
                    JSONObject JO = jsonArray.getJSONObject(count);
                    partyName = JO.getString("party_name");
                    clubName = JO.getString("club_name");
                    veranstalter = JO.getString("veranstalter");
                    datum = JO.getString("datum");
                    zeit = JO.getString("zeit");
                    adresse = JO.getString("adresse");
                    stadt = JO.getString("stadt");
                    plz = JO.getString("plz");
                    ticketverkauf = JO.getString("ticketverkauf");
                    age = JO.getString("age");
                    id = JO.getInt("id");
                    zusagen = JO.getInt("zusagen");
                    PartyItem partyItem;

                    partyItem = new PartyItem(id, partyName, clubName, zeit, adresse, true, veranstalter, datum, stadt, plz, ticketverkauf,age,zusagen);
                        partyAdapter.add(partyItem);

                        count++;

                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
}


Gruß
Jan
 
Du redest vom "jsonObjekt" iterierst aber über die darin enthaltene "server_response".
Die Länge 1 heißt übrigens, dass es nur einen Index 0 gibt. (Länge != maximaler Index).

Ich denke mal, dass Du jsonArray und jsonObjekt irgendwie durcheinander geworfen hast.
 
  • Danke
Reaktionen: DrLiightninG
DieGoldeneMitte schrieb:
Ich denke mal, dass Du jsonArray und jsonObjekt irgendwie durcheinander geworfen hast.
Ja stimmte. Danke!
In meiner while-Schleife habe ich jsonObject.length() verwendet. Stattdessen muss es jedoch jsonArray.length() sein.
 

Ähnliche Themen

S
Antworten
33
Aufrufe
2.670
Sempervivum
S
H
Antworten
2
Aufrufe
1.311
Hcman
H
A
Antworten
10
Aufrufe
1.021
swa00
swa00
Zurück
Oben Unten