<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.11.4</version>
</dependency>
public class Student {
private String name;
private int age;
private String grade;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", grade='" + grade + '\'' +
'}';
}
}
import com.fasterxml.jackson.dataformat.avro.AvroMapper;
import com.fasterxml.jackson.dataformat.avro.AvroSchema;
public class AvroSerializationDemo {
public static void main(String[] args) throws IOException {
ObjectMapper objectMapper = new AvroMapper();
AvroSchema schema = objectMapper.schemaFor(Student.class);
byte[] serializedData = objectMapper.writer(schema).writeValueAsBytes(student);
System.out.println(Arrays.toString(serializedData));
}
}
import com.fasterxml.jackson.dataformat.avro.AvroMapper;
import com.fasterxml.jackson.dataformat.avro.AvroSchema;
import java.io.IOException;
public class AvroDeserializationDemo {
public static void main(String[] args) throws IOException {
ObjectMapper objectMapper = new AvroMapper();
AvroSchema schema = objectMapper.schemaFor(Student.class);
Student student = objectMapper.readerFor(Student.class).with(schema).readValue(serializedData);
System.out.println(student);
}
}