Ich habe eine ArrayList, die ich in einem ArrayAdapter für eine ListView verwende. Ich muss die Elemente in der Liste nehmen und sie in ein JSONArray konvertieren, um sie an eine API zu senden. Ich habe mich umgesehen, aber nichts gefunden, was erklärt, wie dies funktionieren könnte. Jede Hilfe wäre willkommen.
UPDATE - LÖSUNG
Folgendes habe ich getan, um das Problem zu lösen.
Objekt in 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;
}
}
So habe ich es 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 hilft jemandem eines Tages!