使用foreach循环创建JSON文档

时间:2014-04-23 16:51:55

标签: java json

我正在尝试从数据库中获取数据,然后尝试使用ArrayList设置JSON文档中的值,但我无法做到这一点。 让我们说这是硬代码JSON,我想将其转换为动态JSON 查看plainprint? 注意:代码块中的文本内容是自动换行的

String json = "{ \"demo\":[[ \"Sam\",\"Sola\",\"Accun\"],[\"Raj\",\"Sanjosh\",\"CA\"],[\"Karan\",\"Toshi\",\"Java\"]]}";  

现在,为了动态嵌入JSON行,我使用了ArrayList,如下所示: 查看plainprint? 注意:代码块中的文本内容是自动换行的

ArrayList<Object> al = new ArrayList<Object>();  

.............some database code..........  

while (result.next()) {  

al.add("[ \"" + result.getString(1) + "\",  
              \""+ result.getString(3) + "\",  
              \"" + result.getString(4)+ "\",  
              \"" + result.getString(5) + "\",  
              \""+ result.getString(6) + "\",  
              \"" + result.getString(7)+ "\",  
              \"" + result.getString(8) + "\"]");  

}  

现在我想将此集合嵌入到JSON文档中。但不知道该怎么做。 查看plainprint? 注意:代码块中的文本内容是自动换行的

    String h =  "{ \"demo\":[ "+  
        for(Object o : al){  

        }  
         +"]}";  

请指导我完成这个....谢谢!!!

1 个答案:

答案 0 :(得分:1)

不使用手动尝试构建json,最好使用现有的库之一。看起来你想要生成的json是一个简单的映射,所以你可以这样做:

    List<String> list = new ArrayList<String>();
    list.add(result.getString(1));
    list.add(result.getString(3));
    //etc
    Map<String, List<String>> map = new HashMap<String, List<String>>();
    map.put("demo", list);
    String json = new Gson().toJson(map);