有很多方法可以实现这一目标。我将解释两种方式:
你可以这样做:
package hashmaparraylistjson;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
public class HashMapArrayListJSON {
public static void main(String[] args) {
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());
}
}
或者您可以使用杰克逊对象映射器:
将外部库添加到 Eclipse 项目
Java 代码
package hashmaparraylistjson;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.HashMap;
public class HashMapArrayListJSON {
public static void main(String[] args) throws JsonProcessingException {
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);
}
}
两个选项都将打印:
[{"image":"2130837526","category":"Chairs","Quantity":"1"},{"image":"2130837566","category":"Mirrors","Quantity":"2"}]