有没有办法将不同的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();
任何帮助都将不胜感激。
答案 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的“对象示例”部分。