Convertir ArrayList a JSONArray

estoy usandoArrayList<HashMap<String,String>> para guardar mis artículos de carrito. Pero necesito convertirlo aJSONArray para enviarlo a la base de datos. Pero cuando lo convierto aJSONArray elJSONArray Se ve como esto:

03-13 11: 09: 28.842: D / carrito antes (1339): [{image = 2130837526, category = Chairs, Cantidad = 1, price = 400, name = chair, prodId = 34}, {image = 2130837566, category = Espejos, Cantidad = 1, precio = 3000, nombre = La Fonda, prodId = 35}]

03-13 11: 09: 28.842: D / carrito después de convertir a JSONArray (1339): ["{image = 2130837526, categoría = Sillas, Cantidad = 1, precio = 400, nombre = silla, producto = 34}", " {imagen = 2130837566, categoría = Espejos, Cantidad = 1, precio = 3000, nombre = La Fonda, prodId = 35} "]

Lo cual creo que está mal. En cambio, debería convertirse a algo como esto:

cartitems=[{"name":"Chair","price":"1001","prodId":"2","category":"Chairs","image":"2130837519","Quantity":"1"},{"name":"Baxton Studio Club Chair","price":"4545","prodId":"5","category":"Chairs","image":"2130837521","Quantity":"1"}]

Código para convertir aJSONArray:

protected String doInBackground(String... args) {
    AddtoCart obj = (AddtoCart) getApplicationContext();
    JSONArray cart = new JSONArray(obj.getCart());
    HashMap<String, String> params = new HashMap<String, String>();
    params.put("username", username);
    params.put("email", email);
    params.put("payment", payment);
    params.put("address", useraddress);
    params.put("contact", contact);
    params.put("city", usercity);
    params.put("cartitems", cart.toString());
    Log.d("params", params.toString());

    JSONObject json = jParser.makeHttpRequest(url_all_products, "POST", params);
    try {
        success = json.getInt("success");
        message = json.getString("message");
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
}

Tenencia de claseArrayList:

public class AddtoCart extends Application {
    private static final String TAG_QUANTITY = "Quantity";
    private static final String TAG_PRICE = "price";
    ArrayList<HashMap<String, String>> cart = new ArrayList<HashMap<String, String>>();

    public void setCart(ArrayList<HashMap<String, String>> data) {
        //cart = data;
        cart.addAll(data);
        Log.d("Items in the cart", String.valueOf(cart));
    }

    public ArrayList<HashMap<String, String>> getCart() {
        return cart;
    }

    public int getSize() {
        return cart.size();
    }

    public void updateCart(ArrayList<HashMap<String, String>> data) {
        cart = data;
        Log.d("UPDATED CART", String.valueOf(cart));
    }

    public void updateQuantity(int index, String quantity) {
        cart.get(index).put(TAG_QUANTITY,quantity);
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta