合并json、java中映射的arraylist

合并json、java中映射的arraylist,java,json,dictionary,arraylist,hashmap,Java,Json,Dictionary,Arraylist,Hashmap,我有两个json格式的ArrayList(大小相同),如下所示: List<HashMap<String, String>> list1 = new Arraylist<HashMap<String, String>>(); List<HashMap<String, String>> list2 = new Arraylist<HashMap<String, String>>(); 清单2: [{

我有两个json格式的ArrayList(大小相同),如下所示:

List<HashMap<String, String>> list1 = new Arraylist<HashMap<String, String>>();

List<HashMap<String, String>> list2 = new Arraylist<HashMap<String, String>>();
清单2:

[{ " key3": "value3"},{" key33": "value33"}]
预期产出:

[{ " key1": "value1", " key2": "value2", " key3": "value3"}, 
{ " key11": "value11", " key22": "value22", " key3": "value3"}]

如能早日答复,我们将不胜感激。非常感谢。

如果两个ArrayList的类型相同(它们似乎是地图的ArrayList):


如果两个ArrayList的类型相同(它们似乎是地图的ArrayList):


编辑:您可以这样做

    for (HashMap<String, String> m : list2) {
        HashMap<String, String> t = list1.get(list2.indexOf(m));
        for(String key: t.keySet()){
            m.put(key, t.get(key));
        }
    }
for(HashMap m:list2){
HashMap t=list1.get(list2.indexOf(m));
for(字符串键:t.keySet()){
m、 put(键,t.get(键));
}
}

现在合并的项目在列表2中。

编辑:您可以这样做

    for (HashMap<String, String> m : list2) {
        HashMap<String, String> t = list1.get(list2.indexOf(m));
        for(String key: t.keySet()){
            m.put(key, t.get(key));
        }
    }
for(HashMap m:list2){
HashMap t=list1.get(list2.indexOf(m));
for(字符串键:t.keySet()){
m、 put(键,t.get(键));
}
}

现在,合并的项目在列表2中。

您的预期输出可能是:

[{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”}, {“key11”:“value11”、“key22”:“value22”、“key33”:“value33”}]

您没有指出两个列表的大小是否相同。根据您的示例,我假设列表的大小相同。因此,代码可能如下所示:

for (int i = 0; i < list1.size(); i++) {
  list1.get(i).putAll(list2.get(i));
}
for(int i=0;i
您的预期输出可能是:

[{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”}, {“key11”:“value11”、“key22”:“value22”、“key33”:“value33”}]

您没有指出两个列表的大小是否相同。根据您的示例,我假设列表的大小相同。因此,代码可能如下所示:

for (int i = 0; i < list1.size(); i++) {
  list1.get(i).putAll(list2.get(i));
}
for(int i=0;i
您只需从各个列表中检索Hashmap,然后将它们合并在一起即可

例如

HashMap m = new HashMap();
        m.put("key1", "val1");
        m.put("key2", "val2");

        HashMap m1 = new HashMap();
        m1.put("key3", "val3");
HashMap mergeMap = new HashMap();
        mergeMap.putAll(m);
        mergeMap.putAll(m1);

        System.out.println("Map:" + mergeMap);
输出


Map:{key3=val3,key2=val2,key1=val1}

您只需从各个列表中检索Hashmap,然后将它们合并在一起

例如

HashMap m = new HashMap();
        m.put("key1", "val1");
        m.put("key2", "val2");

        HashMap m1 = new HashMap();
        m1.put("key3", "val3");
HashMap mergeMap = new HashMap();
        mergeMap.putAll(m);
        mergeMap.putAll(m1);

        System.out.println("Map:" + mergeMap);
输出



Map:{key3=val3,key2=val2,key1=val1}

感谢您的回复。列表1.addAll(列表2)给出以下O/p:[{{“key1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{{“key11”:“value11”,“key22”:“value22”},{“key3”:“value3”}]感谢您的回复。列表1.addAll(列表2)给出了以下O/p:[{{“key1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{{“key11”:“value11”,“key22”:“value22”},{“key3”:“value3”}]您最初的输入是什么?这些是JSON值还是Java POJO?原始输入是我要合并的列表,是JSON值。请看一下原始输入是什么?这些是JSON值还是Java POJO?原始输入是我要合并的列表,是JSON值。请看一看,谢谢您的回复。列表1.addAll(列表2)没有给出预期的O/p,也就是说,它给出:[{{“key1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{{{“key11”:“value11”,“key22”:“value22”},{“key3”:“value3”}]我已经检查过,正确的json是:
[{“key1”:“value1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”},{“value3”}]
您的json在第一位是无效的
[{{“key1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”},{“key3”:“value3”}]
您是如何得到这个错误的?抱歉,如果我不清楚的话。正如您所指出的,在完成list1.addAll(list2)之后,O/P是[“key1”:“value1”,“key2”:”value2“},{“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”},{“key3”:“value3”}。然而,正如问题中所述,我需要的O/P是:[{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”,“key3”:“value3”}]啊,我知道了,你想合并对象而不是列表。我想没有内置的方法,你必须自己编写。请参阅我对答案的编辑,我为你编写了代码:)它生成你的json
[{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”,“key3”:“value3”}]
感谢您的回复。list1.addAll(list2)没有给出预期的O/p,即它给出:[{“key1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”},{“key3”:“value3”}]我已经检查过,正确的json是:
[{“key1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{“value3”;“value3”},{“value11”key22:“value22”},{“key3:“value3”}]
您的json在第一位是无效的
{{“key1:“value1”,“key2:“value2”},{“key3:“value3”},{“key11”,“key22:“value22”},{“key3:“value3”}]
您是如何得到这个错误的?如果我不清楚,很抱歉。正如您所指出的,在完成list1.addAll(list2[{“key1”:“value1”,“key2”:“value2”},{“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”},{“key3”:“value3”},{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”,“key3”:“value3”}啊,我知道了,你想合并对象而不是列表。我想没有内置的方法,你必须自己编写。请参阅我对答案的编辑,我为你编写了代码:)它生成你的json
[{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”},{“key11”:“value11”,“key22”:“value22”,“key3”:“value3”}]
Superb!!谢谢一吨。这是我要找的。我将编辑问题以提及相同的尺寸。非常好!!谢谢一吨。这是我要找的。我将编辑问题以提及相同的尺寸。