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

Schreibe einen Kommentar