Tôi có ArrayList mà tôi sử dụng trong ArrayAdapter cho ListView. Tôi cần lấy các mục trong danh sách và chuyển đổi chúng thành JSONArray để gửi tới API. Tôi đã tìm kiếm xung quanh, nhưng không tìm thấy bất kỳ điều gì giải thích cách điều này có thể hoạt động, mọi sự trợ giúp sẽ được đánh giá cao.
CẬP NHẬT - GIẢI PHÁP
Đây là những gì tôi đã làm để giải quyết vấn đề.
Đối tượng trong 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;
}
}
Đây là cách tôi chuyển đổi nó:
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());
}
Và đầu ra:
[{"Name":"Name 1","Id":0,"Category":"category 1"},{"Name":"Name 2","Id":1,"Category":"category 2"},{"Name":"Name 3","Id":2,"Category":"category 3"}]
Hy vọng điều này sẽ giúp ai đó một ngày nào đó!