<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.13.0</version>
</dependency>
json
{
"type": "record",
"name": "User",
"fields": [
{"name": "name", "type": "string"},
{"name": "age", "type": "int"}
]
}
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.avro.AvroMapper;
import com.fasterxml.jackson.dataformat.avro.AvroSchema;
import java.io.File;
import java.io.IOException;
public class AvroSerializationExample {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new AvroMapper();
AvroSchema schema = mapper.schemaFrom(new File("user.avsc"));
User user = new User("John Doe", 30);
byte[] avroBytes = mapper.writer(schema).writeValueAsBytes(user);
}
}
class User {
private String name;
private int age;
public User() {}
public User(String name, int age) {
this.name = name;
this.age = age;
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.avro.AvroMapper;
import com.fasterxml.jackson.dataformat.avro.AvroSchema;
import java.io.File;
import java.io.IOException;
public class AvroDeserializationExample {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new AvroMapper();
AvroSchema schema = mapper.schemaFrom(new File("user.avsc"));
User user = mapper.readerFor(User.class).with(schema).readValue(avroBytes);
}
}
class User {
private String name;
private int age;
public User() {}
public User(String name, int age) {
this.name = name;
this.age = age;
}
}