我在用ArrayList<HashMap<String,String>>
存储我的购物车物品。但我需要将其转换为JSONArray
将其发送到数据库。但是当我将它转换为JSONArray
the JSONArray
看起来像这样:
03-13 11:09:28.842: D/购物车之前(1339): [{image=2130837526,
类别=椅子,数量=1,价格=400,名称=椅子,prodId=34},
{图片=2130837566,类别=镜子,数量=1,价格=3000,名称=La
方达,prodId=35}]
03-13 11:09:28.842:转换为 JSONArray(1339) 后的 D/cart:
[“{图片=2130837526,类别=椅子,数量=1,价格=400,
名称=椅子,prodId=34}","{image=2130837566,类别=镜子,
数量=1,价格=3000,名称=拉方达,prodId=35}"]
我认为这是错误的。相反,它应该转换为这样的内容:
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"}]
要转换为的代码JSONArray
:
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;
}
班级举办ArrayList
:
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);
}
}