如何在Java中合并3个或更多JSON

时间:2017-05-23 03:20:35

标签: java json hashmap gson

我有一个关于如何基于相同的密钥将多个JSON组合成1的问题。关键是第一指数。

例如

String data_a = "{\"results\":[[\"1\",\"6000\"],[\"2\",\"5000\"]]\"}";
String data_b = "{\"results\":[[\"1\",\"2000\"],[\"3\",\"5000\"]]\"}";
String data_c = "{\"results\":[[\"1\",\"3000\"],[\"3\",\"6000\"],
[\"4\",\"1000\"]]\"}";

将字符串a,b,c组合为1,如下所示:

{
 "results ": [
    ["1", "6000", "2000", "3000"],
    ["2", "5000", "", ""],
    ["3", "", "5000", "6000"],
    ["4", "", "", "1000"]
 ]
}

在这里,我尝试使用gson转换为Map。但是混淆了如何进行循环并匹配密钥。

Map firstObject = new Gson().fromJson(data_a, HashMap.class);
Map secondObject = new Gson().fromJson(data_b, HashMap.class);
Map thirdObject = new Gson().fromJson(data_c, HashMap.class);

1 个答案:

答案 0 :(得分:0)

  

在&条件下迭代while循环除非所有3个地图都没有   空。然后把他们的关键值放在第4张地图上。同时你   需要删除您在第4张地图中放入的特定条目。

while(!H1.isEmpty() && !H2.isEmpty() && !H2.isEmpty()){

 H4.put(H*) // H1 key
 H*.remove(...) // H1 key

 }

你也可以从map&获得所有的键集。放入一套。

Set<int> keys = new Set<int>();
  keys.add(h*.keySet())

迭代密钥。