从某些 Java 对象生成 Avro 模式

新手上路,请多包涵

Apache Avro 为序列化提供了一种紧凑、快速、二进制数据格式、丰富的数据结构。但是,它需要用户为需要序列化的对象定义一个模式(在 JSON 中)。

在某些情况下,这是不可能的(例如:该 Java 对象的类有一些成员,其类型是外部库中的外部 Java 类)。因此,我想知道是否有一种工具可以从对象的 .class 文件中获取信息并为该对象生成 Avro 模式(例如 Gson 使用对象的 .class 信息将特定对象转换为 JSON 字符串)。

原文由 Richard Le 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 920
2 个回答

这是 从 POJO 定义生成 Avro 模式的 方法

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);

原文由 charlb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题