这个问题与以下内容完全相同: > Converting ArrayList to JSONArray 1个
我想转换ArrayList< Hashmap< String,String>>到JSONArray.我用了
JSONArray array = new JSONArray(array_list);
但它不能正常返回
["{image=2130837526, category=Chairs, Quantity=1, price=400, name=chair, prodId=34}","{image=2130837566, category=Mirrors, Quantity=1, price=3000, name=La Fonda, 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"}]
解决方法:
有很多方法可以实现这一目标.我将解释两种方式:
你可以这样做:
ArrayList> dataMap = new ArrayList>();
HashMap data1 = new HashMap();
data1.put("image", "2130837526");
data1.put("category", "Chairs");
data1.put("Quantity", "1");
HashMap data2 = new HashMap();
data2.put("image", "2130837566");
data2.put("category", "Mirrors");
data2.put("Quantity", "2");
dataMap.add(data1);
dataMap.add(data2);
List jsonObj = new ArrayList();
for(HashMap data : dataMap) {
JSONObject obj = new JSONObject(data);
jsonObj.add(obj);
}
JSONArray test = new JSONArray(jsonObj);
System.out.println(test.toString());
或者您可以使用Jackson Object Mapper:
将外部库添加到Eclipse Project
07002
Java代码
ArrayList> dataMap = new ArrayList>();
HashMap data1 = new HashMap();
data1.put("image", "2130837526");
data1.put("category", "Chairs");
data1.put("Quantity", "1");
HashMap data2 = new HashMap();
data2.put("image", "2130837566");
data2.put("category", "Mirrors");
data2.put("Quantity", "2");
dataMap.add(data1);
dataMap.add(data2);
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(dataMap);
System.out.println(json);
两个选项都将打印:
[{"image":"2130837526","category":"Chairs","Quantity":"1"},{"image":"2130837566","category":"Mirrors","Quantity":"2"}]
标签:android,java,hashmap,arraylist
来源: https://codeday.me/bug/20190724/1525599.html