From 37e468dcc08dc52bb50b65de03f8cc9c7012cceb Mon Sep 17 00:00:00 2001 From: 20150024 Date: Tue, 27 Nov 2018 09:55:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8slf4j,=20=E7=B0=A1=E5=8C=96?= =?UTF-8?q?=E7=A8=8B=E5=BC=8F=E5=9B=A0=E7=BF=BB=E8=AD=AF=E6=AA=94=E4=B8=8D?= =?UTF-8?q?=E6=9C=83=E6=9C=89array=E7=9A=84=E5=80=BC=E6=95=85=E7=A7=BB?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 ++++++ src/main/java/JsonFileCompare.java | 36 ++++++++++-------------------- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index c1b7e26..6b114e3 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,13 @@ jackson-databind 2.9.7 + + + + org.slf4j + slf4j-simple + 1.7.25 + diff --git a/src/main/java/JsonFileCompare.java b/src/main/java/JsonFileCompare.java index 9cd4440..fd85c1f 100644 --- a/src/main/java/JsonFileCompare.java +++ b/src/main/java/JsonFileCompare.java @@ -1,7 +1,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.nio.file.Files; import java.nio.file.Path; @@ -11,10 +12,9 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; public class JsonFileCompare { + private static Logger log = LoggerFactory.getLogger(JsonFileCompare.class); public static void main(String[] args) { - - try { ObjectMapper objectMapper = new ObjectMapper(); Path originPath = Paths.get(args[0]); @@ -25,12 +25,12 @@ public class JsonFileCompare { IntStream.range(1, args.length).forEach(i -> findMissingKeys(Paths.get(args[i]), originSet)); } catch (Exception e) { - System.err.println(args[0] + " is not exists or not json files."); + log.error("{} is not exists or not json files.", args[0], e); System.exit(1); } } - public static void addKeys(String currentPath, JsonNode jsonNode, Set set, List suffix) { + private static void addKeys(String currentPath, JsonNode jsonNode, Set set, List suffix) { if (jsonNode.isObject()) { ObjectNode objectNode = (ObjectNode) jsonNode; Iterator> iter = objectNode.fields(); @@ -40,29 +40,19 @@ public class JsonFileCompare { Map.Entry entry = iter.next(); addKeys(pathPrefix + entry.getKey(), entry.getValue(), set, suffix); } - } else if (jsonNode.isArray()) { - ArrayNode arrayNode = (ArrayNode) jsonNode; - - for (int i = 0; i < arrayNode.size(); i++) { - suffix.add(i + 1); - addKeys(currentPath, arrayNode.get(i), set, suffix); - - if (i + 1 < arrayNode.size()) { - suffix.remove(arrayNode.size() - 1); - } - } } else if (jsonNode.isValueNode()) { + StringBuilder sb = new StringBuilder(currentPath); if (currentPath.contains("-")) { - for (int i = 0; i < suffix.size(); i++) { - currentPath += "-" + suffix.get(i); + for (Integer suffix1 : suffix) { + sb.append("-").append(suffix1); } } - set.add(currentPath); + set.add(sb.toString()); } } - public static void findMissingKeys(Path targetPath, Set originSet) { + private static void findMissingKeys(Path targetPath, Set originSet) { if (!targetPath.toFile().exists()) return; try { Set targetSet = new HashSet<>(); @@ -76,13 +66,11 @@ public class JsonFileCompare { .filter(key -> !targetSet.contains(key)) .collect(Collectors.toSet()); if (!missingKey.isEmpty()) { - System.err.println("Missing Key on " + targetPath.toString()); - System.err.println("Missing Keys: "); - missingKey.stream().sorted().forEach(System.err::println); + log.error("Missing Key on {} \n Missing Keys: {}", targetPath, missingKey.stream().sorted().collect(Collectors.toList())); System.exit(1); } } catch (Exception e) { - System.err.println(targetPath.toString() + " is not json files."); + log.error("{} is not json files.", targetPath, e); System.exit(1); } } -- 2.26.2