Ответ 1
Посмотрите API отражения Java.
Получение схемы выглядит следующим образом:
Schema schema = ReflectData.get().getSchema(T);
См. пример от Doug по другому вопросу для рабочего примера.
Кредиты этого ответа принадлежат Шон Басби.
Apache Avro обеспечивает компактный, быстрый, двоичный формат данных, богатую структуру данных для сериализации. Однако для этого требуется, чтобы пользователь определял схему (в JSON) для объекта, который должен быть сериализован.
В некоторых случаях это невозможно (например: класс этого Java-объекта имеет некоторые члены, типы которых являются внешними классами Java во внешних библиотеках). Поэтому мне интересно, есть ли инструмент, который может получить информацию из файла .class объекта и создать схему Avro для этого объекта (например, Gson использовать объект .class для преобразования определенного объекта в строку JSON).
Посмотрите API отражения Java.
Получение схемы выглядит следующим образом:
Schema schema = ReflectData.get().getSchema(T);
См. пример от Doug по другому вопросу для рабочего примера.
Кредиты этого ответа принадлежат Шон Басби.
Здесь как Сгенерировать схему Avro из определения POJO
ObjectMapper mapper = new ObjectMapper(new AvroFactory());
AvroSchemaGenerator gen = new AvroSchemaGenerator();
mapper.acceptJsonFormatVisitor(RootType.class, gen);
AvroSchema schemaWrapper = gen.getGeneratedSchema();
org.apache.avro.Schema avroSchema = schemaWrapper.getAvroSchema();
String asJson = avroSchema.toString(true);