Пытаюсь более детально обработать ошибки синтаксиса json, нужно чтобы при считке файла и при отсутствие какого-либо поля программа спрашивала у пользователя готов ли он дописать
это поле либо пропустить этот объект и загрузить оставшиеся объекты в файле в коллекцию.
Допустим, мы удалили из файла поле name (т.е полностью "name": "P3111"). И надо чтобы программа выдавала У вас в одном из объектов ошибка поля name. Xотите его дописать либо пропустить загрузку этого объекта?(true/false)
Мой метод reader( читатель json)
/**
* Чтение коллекции из файла
*
* @return коллекция, которая была считана из файла
*/
public PriorityQueue<StudyGroup> readCollection() {
if (file!= null) {
if (file.exists() & !file.canRead()) {
System.out.println("\u001B[37m" + "\u001B[31m" + "Недостаточно прав для чтения данных из файла. Добавьте права на чтение и запустите программу вновь" + "\u001B[31m" + "\u001B[37m");
System.exit(0);
}
try (FileReader fileScanner= new FileReader(file)) {
BufferedInputStream reader= new BufferedInputStream(new FileInputStream((file)));
Type collectionType = new TypeToken<PriorityQueue<StudyGroup>>(){}.getType();
PriorityQueue<StudyGroup> collection = gson.fromJson(fileScanner, collectionType);
reader.readAllBytes();
System.out.println("\u001B[37m" + "\u001B[33m" + "Коллекция успешно загружена!" + "\u001B[33m" + "\u001B[37m");
if (collection == null) return new PriorityQueue<>();
return collection;
} catch (FileNotFoundException e) {
System.err.println("Файл с таким именем не найден :(");
} catch (IOException e) {
System.err.println("Ошибка ввода-вывода");
} catch (JsonSyntaxException e) {
System.err.println("Формат файла не удовлетворяет условию");
}
catch (RuntimeException e){
Messages.normalMessageOutput("\u001B[37m" + "\u001B[33m"+"Файл написан с ошибкой, перепроверьте файл и запустите программу снова"+ "\u001B[33m" + "\u001B[37m");
}
} else
System.out.println("\u001B[37m" + "\u001B[31m" + "Системная переменная с загрузочным файлом не найдена!" + "\u001B[31m" + "\u001B[37m");
return new PriorityQueue<>();
}
Json файл
[{"id":4229754249302793379,"name":"P3111","coordinates":{"x":32,"y":-360.0},"creationDate":{"date":{"year":2021,"month":4,"day":27},"time":{"hour":10,"minute":41,"second":15,"nano":506122400}},"studentsCount":32,"expelledStudents":5,"formOfEducation":"DISTANCE_EDUCATION","semesterEnum":"FIRST","groupAdmin":{"name":"Маша","passportID":"123","eyeColor":"BLACK","hairColor":"BLACK","nationality":"USA"}},{"id":5576486070722418065,"name":"P3111","coordinates":{"x":32,"y":-360.0},"creationDate":{"date":{"year":2021,"month":4,"day":27},"time":{"hour":10,"minute":41,"second":24,"nano":974652600}},"studentsCount":32,"expelledStudents":5,"formOfEducation":"DISTANCE_EDUCATION","semesterEnum":"FIRST","groupAdmin":{"name":"Маша","passportID":"123","eyeColor":"BLACK","hairColor":"BLACK","nationality":"USA"}}]