Я работаю над валидатором JSON-avro, и он работает нормально. Однако, когда JSON недействителен для схемы avro, я получаю только сообщение «Ожидаемое целое. Получил VALUE_STRING». Это было бы хорошо для небольших файлов JSON, но не для огромных.
Есть ли способ получить конкретную строку JSON, в которой сработало сообщение «Ожидаемое целое. Получил VALUE_STRING»?
Код:
public static boolean validateJson(String json, Schema schema) throws Exception {
InputStream input = new ByteArrayInputStream(json.getBytes());
DataInputStream din = new DataInputStream(input);
try {
DatumReader reader = new GenericDatumReader(schema);
Decoder decoder = DecoderFactory.get().jsonDecoder(schema, din);
reader.read(null, decoder);
return true;
} catch (AvroTypeException e) {
System.out.println(e.getMessage());
return false;
}
}
Я ожидаю что-то вроде «строка 3: Ожидаемое целое число. Получено VALUE_STRING».
Файл pom.xml:
4.0.0
org.example
maventest
1.0-SNAPSHOT
21
21
UTF-8
Подробнее здесь: https://stackoverflow.com/questions/790 ... eexception