erstellen Sie mehrere JSON-Objekts dynamisch?
Ich versuche zum einfügen von Daten in mehrere JSON-Objekte, aber ich weiß nicht, wie man erstellen Sie dynamisch in android.
In der hart codiert so wie es ist so etwas wie:-
JSONArray pdoInformation = new JSONArray();
JSONObject pDetail1 = new JSONObject();
JSONObject pDetail2 = new JSONObject();
JSONObject pDetail3 = new JSONObject();
pDetail1.put("productid", 1);
pDetail1.put("qty", 3);
pDetail1.put("listprice", 9500);
pDetail2.put("productid", 2);
pDetail2.put("qty", 4);
pDetail2.put("listprice", 8500);
pDetail3.put("productid", 3);
pDetail3.put("qty", 2);
pDetail3.put("listprice", 1500);
pdoInformation.put(pDetail1);
pdoInformation.put(pDetail2);
pdoInformation.put(pDetail3);
Aber ich will diese JSONObject
dynamisch, da ich nicht weiß, wie viele von Ihnen erforderlich sein werden, während die Codierung und diese dynamisch erstellt JSONObject
den Daten gefüllt wird, die aus drei ArrayList
von productid
, qty
und listprice
.
Also seine offensichtlich, dass die Anzahl derer, die dynamisch erstellt JSONObject
wird, hängt von der size
einer ArrayList
.
ArrayList
:-
ArrayList<String> productid = new ArrayList<String>();
ArrayList<String> qty = new ArrayList<String>();
ArrayList<String> listprice= new ArrayList<String>();
- Sie wollen Daten senden, ohne Namen ?ohne Schlüssel?
- mit Namen und Schlüssel
- posten Sie Ihre arraylist, komplette code
- aktualisierten code
- Größe alle gleich sind , ja?
- ja alle sind gleich
- ist es möglich das Anhängen einer Nummer an den Namen der
JSONObject
mit jeder iteration?? - ja, obj.put("name",Wert);
- Nein ich meinte wie in der ersten iteration des JSON-Objekts name ist
pDetail1
im zweitenpDetail2
. Etwas so???? - warum wollen Sie name, verweisen Sie später? so verwenden Sie den index, statt Blick auf meine neue Kommentar in meiner Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
am Ende alle JSONObjects sind in myJSONObjects.
{{productid:1, qty:3, listprice:9500}, {productid:2,qty:2, listprice:8500}}
oder {productid:1, Menge:3, Listenpreis:9500, productid:2, Menge:2, Listenpreis:8500}`???Als Sie bereits mit
ArrayList
, Durchlaufen wird, und erstellen Sie eine neueJSONObject
in jeder iteration und legte es inArrayList<JSONObject>
.Zum Beispiel:
JSONObject objJSON;
Sie nicht nehmen sollten verschiedene ArrayLists, da Sie die Verwaltung der einzelnen Listen so viele wie Sie haben, stattdessen erstellen Sie eine einzelne ArrayList vom Typ Benutzer definierte Klasse. Zum Beispiel
ArrayList<Product>
wo Produkt-Typ enthalten würde, setter - /getter-Methoden.put
die Daten in es, wie ich weiß nicht seinen Namen?ArrayList
im code und in dieser Zeit hatten Sie nicht geantwortet auf meine Anfrage, während die anderen reagierten. Ich akzeptierte diese Antwort nicht nur, weil es funktionierte genau so, wie ich wollte, aber auch, weil, wenn jemand anderes wird kommen auf der Suche für die gleiche Frage, dann hat er nicht viel zu tun, änderungen im code. Keine Respektlosigkeit, ich sogar bis-stimmten Ihre Antwort.In diesem design, wie Sie beziehen sich Daten mit jedem anderen, wenn es ist aufgeteilt in mehrere Arraylists.
Scheint es, müssen Sie die Neugestaltung Ihrer Datenstruktur ein bisschen.
Anstelle der Verwendung von drei ArrayLists zu halten, sollten Sie eine Arraylist.
Dass Arraylist halten wird Objekt der Bohnen.
Ex.
und halten Sie alle Objekte in einer Arraylist und dann per Schleife durch das man alle drei Werte zusammen, während das erstellen von JSON.
JSON ist nur ein text-String. Könnte man einfach so etwas schreiben:
Dies könnte der raw Weg, es zu tun.
Ich bin mit (nicht in android, aber in jsp, konnte also nicht offen) gson und es funktioniert auch mit arraylist-Objekt, so können Sie das array von Objekten, und danach Fragen Sie ihn zum generieren des json-text.