public class MyData {
private String field1;
private int field2;
}
@AvroSchema("{\"type\": \"record\", \"name\": \"MyData\", \"fields\": [{\"name\": \"field1\", \"type\": \"string\"}, {\"name\": \"field2\", \"type\": \"int\"}]}")
public class MyData { ... }
ObjectMapper mapper = new ObjectMapper(new AvroFactory());
byte[] avroBytes = mapper.writerFor(MyData.class).writeValueAsBytes(myData);
MyData deserializedData = mapper.readerFor(MyData.class).readValue(avroBytes);
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.13.0</version>
</dependency>
AvroSchemaGenerator gen = new AvroSchemaGenerator();
mapper.acceptJsonFormatVisitor(MyData.class, gen);
AvroSchema schema = gen.getGeneratedSchema();
AvroMapper avroMapper = new AvroMapper();
avroMapper.schemaFrom(schema);
mapper.setMapper(avroMapper);