2016-03-02 166 views
2

我想创建一个String,如下所示。ArrayList <HashMap <String,String >>到JSON对象Java

[{ "Name":"David", 
    "Age":"30" 
    }, 
    {"Name":"Max", 
    "Age":"20" 
    } 
] 

如何在Java中使用ArrayList<HashMap<String,String>>和JSON创建此字符串?

+1

此链接将帮助您:http://stackoverflow.com/questions/12155800/how-to-convert-hashmap-to-json-object -in-java – Kartic

+0

http://www.json.org/javadoc/org/json/JSONObject.html无法正常工作。你能解释一下吗?我是新来的Java。我有ArrayList >与所有数据。我只是想从上面准备一个JSON字符串。另外请注意,没有JSON密钥 –

+0

@creative Pro您是否尝试过我的解决方案 –

回答

2

尝试如下

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(); 
} 
+0

谢谢,这适用于我 –

1

尝试Jackson Mapper您可以阅读关于它的一些tutorials。 您可以编写代码,以这种方式使用杰克逊:

ObjectMapper mapper = new ObjectMapper(); 
jsonString = mapper.writeValueAsString(listOfMap); 
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"}] 
相关问题