**
最近项目中遇到一个小问题 : 如何根据Map的key相同把对应的value值一一对应起来。
**
想要把两个map变成如下的Json模样
String jsonArry =[{"moduleType":"25","value":"乔巴","oldValue":"","colId":"143675"},{"moduleType":"25","value":"【虚店】网聚宝女鞋1店","oldValue":"","colId":"143673"},{"moduleType":"25","value":"今晚打老虎","oldValue":"","colId":"143674"}]
Map<String,String> juyi= new HashMap<>();
juyi.put("dianpuName","143673");
juyi.put("taskTitle","143674");
juyi.put("author","143675");
Map<String,Object> banniu= new HashMap<>();
banniu.put("dianpuName","【虚店】女鞋1店");
banniu.put("taskTitle","今晚打老虎");
banniu.put("author", "乔巴");
StringBuilder contents = new StringBuilder("[") ;
//遍历juyi Map。是为了去一一匹配banniu Map 中对应的值
Iterator<Map.Entry<String, String>> it = juyi.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
//判断banniu中是否有相同的key
if(banniu.containsKey(entry.getKey())){
//转换成taskAppService.createTask服务所需要的Map
contents.append(String.format("{\"moduleType\":\"%s\",\"value\":\"%s\",\"oldValue\":\"%s\",\"colId\":\"%s\"}","25",banniu.get(entry.getKey()),"",entry.getValue()));
contents.append(",");
}
}
contents.deleteCharAt(contents.length()-1);//删除最后一个无用逗号。
contents.append("]");
System.out.println(contents);