ArrayList<HashMap<String,String>> 到 JSON 对象 Java
Posted
技术标签:
【中文标题】ArrayList<HashMap<String,String>> 到 JSON 对象 Java【英文标题】:ArrayList<HashMap<String,String>> to JSON object Java 【发布时间】:2016-06-14 21:18:27 【问题描述】:我想创建一个字符串如下。
[ "Name":"David",
"Age":"30"
,
"Name":"Max",
"Age":"20"
]
我们如何在 Java 中使用 ArrayList<HashMap<String,String>>
和 JSON 创建这个字符串?
【问题讨论】:
此链接对您有帮助:***.com/questions/12155800/… json.org/javadoc/org/json/JSONObject.html 不工作。你能解释一下吗?我是java新手。我有 ArrayList尝试如下
public String listmap_to_json_string(List<HashMap<String, String>> list)
JSONArray json_arr=new JSONArray();
for (Map<String, String> map : list)
JSONObject json_obj=new JSONObject();
for (Map.Entry<String, String> entry : map.entrySet())
String key = entry.getKey();
String value = entry.getValue();
try
json_obj.put(key,value);
catch (JSONException e)
// TODO Auto-generated catch block
e.printStackTrace();
json_arr.put(json_obj);
return json_arr.toString();
【讨论】:
【参考方案2】:My JSON library 完全适合您的用例。例如:
ArrayList<HashMap<String,String>> outer = new ArrayList<HashMap<String,String>>();
HashMap<String,String> inner = new HashMap<String,String>();
inner.put("Name", "David");
inner.put("Age", "30");
outer.add(inner);
inner = new HashMap<String,String>();
inner.put("Name", "Max");
inner.put("Age", "20");
outer.add(inner);
//----------
import io.nayuki.json.Json;
String jsonText = Json.serialize(outer);
System.out.println(jsonText);
输出文本:
["Age": "30", "Name": "David", "Age": "20", "Name": "Max"]
【讨论】:
【参考方案3】:试试Jackson Mapper
你可以阅读一些关于它的tutorials。
您可以通过这种方式使用 Jackson 编写代码:
ObjectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString(listOfMap);
【讨论】:
以上是关于ArrayList<HashMap<String,String>> 到 JSON 对象 Java的主要内容,如果未能解决你的问题,请参考以下文章
如何使用来自 Arraylist<Hashmap<String,String>> 的 bundle 获取使用 putserializable 传递的值
Java中HashMap,HashSet是线程安全的吗,ArrayList是线程不安全的那如何避免其出异常?