慕哥9229398
您可以使用任何一种最流行的 JSON 库来实现这一目标,以下示例演示了如何将多个 JSON 字符串合并为一个Jackson。我使用Map<String, Object>(如jsonMap)作为合并的 JSON 字符串。如果所有给定 JSON 字符串中的键都相同,则jsonMap中的值将为String。否则,其值为List<String>。示例代码List<String> jsonStrList = Arrays.asList("{\"a\":\"test1\",\"b\":\"test2\"}","{\"b\":\"test3\",\"c\":\"test4\"}");ObjectMapper mapper = new ObjectMapper();Map<String, Object> jsonMap = new HashMap<>();for (String jsonStr : jsonStrList) { Map<String, String> jsonContent = mapper.readValue(jsonStr, Map.class); jsonContent.forEach((k,v) -> { if (jsonMap.containsKey(k)) { if (jsonMap.get(k) instanceof String) { List<String> content = new ArrayList<>(); content.add(jsonMap.get(k).toString()); content.add(v); jsonMap.put(k, content); } else { jsonMap.put(k, ((ArrayList) jsonMap.get(k)).add(v)); } } else { jsonMap.put(k, v); } });}System.out.println(jsonMap.toString());System.out.println(new ObjectMapper().writeValueAsString(jsonMap).toString());控制台输出{a=test1, b=[test2], c=test4}{"a":"test1","b":["test2","test3"],"c":"test4"}