Lösung mit doppelter JSON-IDJava

Java-Forum
Guest
 Lösung mit doppelter JSON-ID

Post by Guest »

com.google.gson.Gson importieren; import com.google.gson.JsonObject; java.io.File importieren; import java.io.FileReader; import java.io.IOException; import java.util.*; public class FindDuplicateIdsInJsonFiles { public static void main(String[] args) { // Durch den Ordnerpfad mit den JSON-Dateien ersetzen String FolderPath = "/path/to/json/files/folder"; Dateiordner = neue Datei(folderPath); // Rufen Sie die Methode auf, um doppelte IDs zu finden. List Duplikate = findDuplicateIds(folder); // Die doppelten Datensätze ausgeben if (duplicates.isEmpty()) { System.out.println("Keine doppelten IDs gefunden."); } else { System.out.println("Doppelte IDs gefunden:"); System.out.printf("%-10s %-20s %-30s%n", "ID", "Wert", "Dateiname"); System.out.println("---------------------------- -----------------"); for (DuplicateRecord-Datensatz: Duplikate) { System.out.printf("%-10s %-20s %-30s%n", record.getId(), record.getValue(), record.getFileName()); } } } public static List findDuplicateIds(Filefolder) { Map idRecordsMap = new HashMap(); List DuplikatRecords = new ArrayList(); // Überprüfen Sie, ob der Ordner existiert und Dateien enthält if (!folder.exists() || !folder.isDirectory()) { System.out.println("Invalid Folder Path!"); return doubleRecords; } // Alle JSON-Dateien im Ordner durchlaufen File[] files = Folder.listFiles((dir, name) -> name.endsWith(".json")); if (files == null || files.length == 0) { System.out.println("Keine JSON-Dateien im Ordner gefunden!"); return doubleRecords; } Gson gson = new Gson(); for (File file : files) { try (FileReader reader = new FileReader(file)) { // JSON-Datei analysieren JsonObject jsonObject = gson.fromJson(reader, JsonObject.class); // Extrahieren Sie das Feld „id“ if (jsonObject.has("id")) { String id = jsonObject.get("id").getAsString(); String-Wert = jsonObject.toString(); // Den Datensatz zur Map hinzufügen DuplicateRecord record = new DuplicateRecord(id, value, file.getName()); idRecordsMap.putIfAbsent(id, new ArrayList()); idRecordsMap.get(id).add(record); } } Catch (IOException e) { System.err.println("Fehler beim Lesen der Datei: " + file.getName()); e.printStackTrace(); } Catch (Exception e) { System.err.println("Fehler beim Parsen der Datei: " + file.getName()); e.printStackTrace(); } } // Duplikate Datensätze sammeln für (Map.Entry Eintrag: idRecordsMap.entrySet()) { if (entry.getValue().size() > 1) { doubleRecords.addAll(entry.getValue() ); } } return doubleRecords; } } // Klasse zur Darstellung doppelter Datensätze class DuplicateRecord { private final String id; privater endgültiger String-Wert; private final String fileName; public DuplicateRecord(String id, String value, String fileName) { this.id = id; this.value = value; this.fileName = fileName; } public String getId() { return id; } public String getValue() { return value; } public String getFileName() { return fileName; }

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post