【问题标题】:ArrayList<HashMap<String,String>> to JSON object JavaArrayList<HashMap<String,String>> 到 JSON 对象 Java
【发布时间】:2016-06-14 21:18:27
【问题描述】:

我想创建一个字符串如下。

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

我们如何在 Java 中使用 ArrayList&lt;HashMap&lt;String,String&gt;&gt; 和 JSON 创建这个字符串?

【问题讨论】:

标签: java


【解决方案1】:

尝试如下

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);
      

      【讨论】:

        猜你喜欢
        • 2013-07-29
        • 2017-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        • 1970-01-01
        相关资源
        最近更新 更多