使用GSON </string>将多个Collection <string>合并为一个JSON字符串

时间:2012-04-20 10:32:26

标签: java json collections gson

有没有办法将不同的String-Collections合并为一个JSON'String'? 我想要一个看起来像这样的JSON字符串:

{"vendor":[Sun, HP, IBM],"product":[bla, bla, bla],"availability":[high, mid, low],"capacity":[bla, bla, bla], ...}

这是我的Java代码的一部分:

Collection<String> vendor = bh.getAllVendors();
Collection<String> product = bh.getProductsForVendor(vendor);
Collection<String> availability = bh.getAllAvailabilities();
Collection<String> capacity = bh.getCapacityForVendor(vendor);
Collection<String> signaling = bh.getSignalingForVendor(vendor);
Collection<String> backup = bh.getBackupForVendor(vendor);

Gson gson = new Gson();

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:7)

如果将它们添加到地图中最简单:

    Gson gson = new Gson();

    Map<String, Collection<String>> map = new HashMap<>();
    map.put("vendor", vendor);
    map.put("product", product);
    //etc

    System.out.println(gson.toJson(map));

产生     {"product":["bla","bla","bla"],"vendor":["Sun","IBM","HP"]}

答案 1 :(得分:2)

创建一个新类:

Class MyJSONObject
  {
    Collection<String> vendor;
    Collection<String> product;
    Collection<String> availability;
    //...
    //...
  }

然后将您的数据分配给MyJSONObject

实例中的那些属性

然后序列化该实例:

gson.toJson (myJSONObjectInstance);

阅读this GSON documentation的“对象示例”部分。