java 将 HashMap 的 ArrayList 转换为 JSON String

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/35970850/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 00:49:32  来源:igfitidea点击:

Convert ArrayList of HashMap into JSON String

javaandroidarraylisthashmap

提问by Infinity

I want to convert ArrayList<Hashmap<String,String>>to JSONArray. I used

我想转换ArrayList<Hashmap<String,String>>JSONArray. 我用了

JSONArray array = new JSONArray(array_list);

but it does not work properly it returns

但它不能正常工作它返回

["{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}"]

Instead it should return

相反,它应该返回

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"}]

回答by André Bonna

There are many ways to achieve that. I will explain two ways:

有很多方法可以实现这一目标。我将解释两种方式:

You can do like this:

你可以这样做:

ArrayList<HashMap<String, String>> dataMap = new ArrayList<HashMap<String, String>>();

HashMap<String, String> data1 = new HashMap<String, String>();
data1.put("image", "2130837526");
data1.put("category", "Chairs");
data1.put("Quantity", "1");

HashMap<String, String> data2 = new HashMap<String, String>();
data2.put("image", "2130837566");
data2.put("category", "Mirrors");
data2.put("Quantity", "2");

dataMap.add(data1);
dataMap.add(data2);


List<JSONObject> jsonObj = new ArrayList<JSONObject>();

for(HashMap<String, String> data : dataMap) {
    JSONObject obj = new JSONObject(data);
    jsonObj.add(obj);
}

JSONArray test = new JSONArray(jsonObj);

System.out.println(test.toString());


Or you can use Hymanson Object Mapper:

或者您可以使用 Hymanson 对象映射器:

Download Hymanson Core

下载Hyman逊核心

Download Hymanson Mapper

下载Hyman逊映射器

Add external libraries to Eclipse Project

将外部库添加到 Eclipse 项目

Adding a library/JAR to an Eclipse Android project

将库/JAR 添加到 Eclipse Android 项目

Java Code

Java代码

ArrayList<HashMap<String, String>> dataMap = new ArrayList<HashMap<String, String>>();

HashMap<String, String> data1 = new HashMap<String, String>();
data1.put("image", "2130837526");
data1.put("category", "Chairs");
data1.put("Quantity", "1");

HashMap<String, String> data2 = new HashMap<String, String>();
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);

Both options will print:

这两个选项都将打印:

[{"image":"2130837526","category":"Chairs","Quantity":"1"},{"image":"2130837566","category":"Mirrors","Quantity":"2"}]