如何在Java中将Arraylist转换为Json

我有一个arraylist,arraylist拥有一堆Domain对象。 如下所示:

Domain [domainId=19, name=a, dnsName=a.com, type=0, flags=0] Domain [domainId=20, name=b, dnsName=b.com, type=0, flags=12] Domain [domainId=21, name=c, dnsName=c.com, type=0, flags=0] Domain [domainId=22, name=d, dnsName=d.com, type=0, flags=0] 

我的问题是如何将ArrayList转换为JSON? 数据格式应为:

 { "param":{ "domain":[ { "domid":19, "name":"a", "dnsname":"a.com", "type":0, "flags": }, ... ] } 

不确定它是否正是您所需要的,但您可以使用GSON库( Link )进行ArrayListJSON转换。

 ArrayList list = new ArrayList(); list.add("str1"); list.add("str2"); list.add("str3"); String json = new Gson().toJson(list); 

或者在你的情况下:

 ArrayList list = new ArrayList(); list.add(new Domain()); list.add(new Domain()); list.add(new Domain()); String json = new Gson().toJson(list); 

如果由于某种原因您发现它更方便,您还可以遍历ArrayList并从列表中的各个Domain对象构建JSON

 String toJSON(ArrayList list) { Gson gson = new Gson(); StringBuilder sb = new StringBuilder(); for(Domain d : list) { sb.append(gson.toJson(d)); } return sb.toString(); }