【问题标题】:How to convert Arraylist to Json in Java如何在 Java 中将 Arraylist 转换为 Json
【发布时间】:2014-09-10 17:45:56
【问题描述】:

我有一个数组列表,数组列表包含一堆域对象。如下图所示:

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":
    },
    ...
  ]
}

【问题讨论】:

标签: java json


【解决方案1】:

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

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

或者在你的情况下:

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

如果由于某种原因你觉得它更方便,你也可以遍历 ArrayList 并从列表中的单个 Domain 对象构建一个 JSON

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

【讨论】:

  • 我知道这是一个旧评论,但如果有人在这一点上卡住: new Gson().fromJson(json, new TypeToken>(){}.getType()) ;
猜你喜欢
  • 2022-10-17
  • 1970-01-01
  • 2017-09-19
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 2012-08-31
  • 1970-01-01
相关资源
最近更新 更多