2016-03-02 122 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"}] 
相關問題