Konvertieren ArrayList & lt; MyCustomClass & gt; zu JSONArray
Habe ich eine ArrayList, die ich innerhalb einer ArrayAdapter für ListView. Ich brauchen, um die Elemente in der Liste und konvertieren Sie Sie in einem JSONArray zu senden, um eine API. Ich habe gesucht um, aber habe nicht gefunden was das erklärt, wie dies funktionieren könnte, jede mögliche Hilfe würde geschätzt.
UPDATE - LÖSUNG
Hier ist, was ich am Ende tun, um das Problem zu lösen.
Objekt in der ArrayList:
public class ListItem {
private long _masterId;
private String _name;
private long _category;
public ListItem(long masterId, String name, long category) {
_masterId = masterId;
_name = name;
_category = category;
}
public JSONObject getJSONObject() {
JSONObject obj = new JSONObject();
try {
obj.put("Id", _masterId);
obj.put("Name", _name);
obj.put("Category", _category);
} catch (JSONException e) {
trace("DefaultListItem.toString JSONException: "+e.getMessage());
}
return obj;
}
}
Hier ist, wie ich konvertiert:
ArrayList<ListItem> myCustomList = .... //list filled with objects
JSONArray jsonArray = new JSONArray();
for (int i=0; i < myCustomList.size(); i++) {
jsonArray.put(myCustomList.get(i).getJSONObject());
}
Und die Ausgabe:
[{"Name":"Name 1","Id":0,"Category":"category 1"},{"Name":"Name 2","Id":1,"Category":"category 2"},{"Name":"Name 3","Id":2,"Category":"category 3"}]
Hoffe, das jemand hilft!
InformationsquelleAutor der Frage chris | 2011-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich Lesen JSONArray Konstruktoren richtig, Sie können bauen Sie aus einer Collection (arrayList ist eine Unterklasse von Collection) etwa so:
Referenzen:
http://developer.android.com/reference/org/json/JSONArray.html#JSONArray%28java.util.Collection%29
http://developer.android.com/reference/java/util/Collection.html
InformationsquelleAutor der Antwort Nanne
Verwenden Gson-Bibliothek zu konvertieren ArrayList zu JsonArray.
InformationsquelleAutor der Antwort Uttam
Als jemand, der zahlen darauf hin, dass die OP will konvertieren benutzerdefinierte Liste zu
org.json.JSONArray
nicht diecom.google.gson.JsonArray
,die RICHTIGE Antwort sollte wie folgt sein:InformationsquelleAutor der Antwort zionpi
InformationsquelleAutor der Antwort dhamat chetan
Ich weiß, dass das schon beantwortet, aber es gibt eine bessere Lösung hier diesen code verwenden :
Diese Weise können Sie den Zugriff auf Variablen aus der Klasse, ohne Sie manuell eingeben..
Schneller und besser ..
Hoffe, das hilft.
Cheers. 😀
InformationsquelleAutor der Antwort ralphgabb
Hinzufügen, um Ihre gradle:
Konvertieren
ArrayList
zuJsonArray
InformationsquelleAutor der Antwort Deep Patel